[CIFS] Cleanup extra whitespace in dmesg logging. Update cifs change log
This commit is contained in:
@@ -3,7 +3,10 @@ Version 1.43
|
|||||||
POSIX locking to servers which support CIFS POSIX Extensions
|
POSIX locking to servers which support CIFS POSIX Extensions
|
||||||
(disabled by default controlled by proc/fs/cifs/Experimental).
|
(disabled by default controlled by proc/fs/cifs/Experimental).
|
||||||
Handle conversion of long share names (especially Asian languages)
|
Handle conversion of long share names (especially Asian languages)
|
||||||
to Unicode during mount.
|
to Unicode during mount. Fix memory leak in sess struct on reconnect.
|
||||||
|
Fix rare oops after acpi suspend. Fix O_TRUNC opens to overwrite on
|
||||||
|
cifs open which helps rare case when setpathinfo fails or server does
|
||||||
|
not support it.
|
||||||
|
|
||||||
Version 1.42
|
Version 1.42
|
||||||
------------
|
------------
|
||||||
|
@@ -467,7 +467,7 @@ decode_negTokenInit(unsigned char *security_blob, int length,
|
|||||||
asn1_open(&ctx, security_blob, length);
|
asn1_open(&ctx, security_blob, length);
|
||||||
|
|
||||||
if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) {
|
if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) {
|
||||||
cFYI(1, ("Error decoding negTokenInit header "));
|
cFYI(1, ("Error decoding negTokenInit header"));
|
||||||
return 0;
|
return 0;
|
||||||
} else if ((cls != ASN1_APL) || (con != ASN1_CON)
|
} else if ((cls != ASN1_APL) || (con != ASN1_CON)
|
||||||
|| (tag != ASN1_EOC)) {
|
|| (tag != ASN1_EOC)) {
|
||||||
@@ -495,7 +495,7 @@ decode_negTokenInit(unsigned char *security_blob, int length,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) {
|
if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) {
|
||||||
cFYI(1, ("Error decoding negTokenInit "));
|
cFYI(1, ("Error decoding negTokenInit"));
|
||||||
return 0;
|
return 0;
|
||||||
} else if ((cls != ASN1_CTX) || (con != ASN1_CON)
|
} else if ((cls != ASN1_CTX) || (con != ASN1_CON)
|
||||||
|| (tag != ASN1_EOC)) {
|
|| (tag != ASN1_EOC)) {
|
||||||
@@ -505,7 +505,7 @@ decode_negTokenInit(unsigned char *security_blob, int length,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) {
|
if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) {
|
||||||
cFYI(1, ("Error decoding negTokenInit "));
|
cFYI(1, ("Error decoding negTokenInit"));
|
||||||
return 0;
|
return 0;
|
||||||
} else if ((cls != ASN1_UNI) || (con != ASN1_CON)
|
} else if ((cls != ASN1_UNI) || (con != ASN1_CON)
|
||||||
|| (tag != ASN1_SEQ)) {
|
|| (tag != ASN1_SEQ)) {
|
||||||
@@ -515,7 +515,7 @@ decode_negTokenInit(unsigned char *security_blob, int length,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) {
|
if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) {
|
||||||
cFYI(1, ("Error decoding 2nd part of negTokenInit "));
|
cFYI(1, ("Error decoding 2nd part of negTokenInit"));
|
||||||
return 0;
|
return 0;
|
||||||
} else if ((cls != ASN1_CTX) || (con != ASN1_CON)
|
} else if ((cls != ASN1_CTX) || (con != ASN1_CON)
|
||||||
|| (tag != ASN1_EOC)) {
|
|| (tag != ASN1_EOC)) {
|
||||||
@@ -527,7 +527,7 @@ decode_negTokenInit(unsigned char *security_blob, int length,
|
|||||||
|
|
||||||
if (asn1_header_decode
|
if (asn1_header_decode
|
||||||
(&ctx, &sequence_end, &cls, &con, &tag) == 0) {
|
(&ctx, &sequence_end, &cls, &con, &tag) == 0) {
|
||||||
cFYI(1, ("Error decoding 2nd part of negTokenInit "));
|
cFYI(1, ("Error decoding 2nd part of negTokenInit"));
|
||||||
return 0;
|
return 0;
|
||||||
} else if ((cls != ASN1_UNI) || (con != ASN1_CON)
|
} else if ((cls != ASN1_UNI) || (con != ASN1_CON)
|
||||||
|| (tag != ASN1_SEQ)) {
|
|| (tag != ASN1_SEQ)) {
|
||||||
|
@@ -2239,7 +2239,7 @@ CIFSSMBQueryReparseLinkInfo(const int xid, struct cifsTconInfo *tcon,
|
|||||||
}
|
}
|
||||||
symlinkinfo[buflen] = 0; /* just in case so the caller
|
symlinkinfo[buflen] = 0; /* just in case so the caller
|
||||||
does not go off the end of the buffer */
|
does not go off the end of the buffer */
|
||||||
cFYI(1,("readlink result - %s ",symlinkinfo));
|
cFYI(1,("readlink result - %s",symlinkinfo));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
qreparse_out:
|
qreparse_out:
|
||||||
|
@@ -191,7 +191,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
|
|||||||
cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR);
|
cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR);
|
||||||
}
|
}
|
||||||
if (rc) {
|
if (rc) {
|
||||||
cFYI(1, ("cifs_create returned 0x%x ", rc));
|
cFYI(1, ("cifs_create returned 0x%x", rc));
|
||||||
} else {
|
} else {
|
||||||
/* If Open reported that we actually created a file
|
/* If Open reported that we actually created a file
|
||||||
then we now have to set the mode if possible */
|
then we now have to set the mode if possible */
|
||||||
|
@@ -201,7 +201,7 @@ int cifs_open(struct inode *inode, struct file *file)
|
|||||||
} else {
|
} else {
|
||||||
if (file->f_flags & O_EXCL)
|
if (file->f_flags & O_EXCL)
|
||||||
cERROR(1, ("could not find file instance for "
|
cERROR(1, ("could not find file instance for "
|
||||||
"new file %p ", file));
|
"new file %p", file));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -272,7 +272,7 @@ int cifs_open(struct inode *inode, struct file *file)
|
|||||||
& CIFS_MOUNT_MAP_SPECIAL_CHR);
|
& CIFS_MOUNT_MAP_SPECIAL_CHR);
|
||||||
}
|
}
|
||||||
if (rc) {
|
if (rc) {
|
||||||
cFYI(1, ("cifs_open returned 0x%x ", rc));
|
cFYI(1, ("cifs_open returned 0x%x", rc));
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
file->private_data =
|
file->private_data =
|
||||||
@@ -409,8 +409,8 @@ static int cifs_reopen_file(struct inode *inode, struct file *file,
|
|||||||
CIFS_MOUNT_MAP_SPECIAL_CHR);
|
CIFS_MOUNT_MAP_SPECIAL_CHR);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
up(&pCifsFile->fh_sem);
|
up(&pCifsFile->fh_sem);
|
||||||
cFYI(1, ("cifs_open returned 0x%x ", rc));
|
cFYI(1, ("cifs_open returned 0x%x", rc));
|
||||||
cFYI(1, ("oplock: %d ", oplock));
|
cFYI(1, ("oplock: %d", oplock));
|
||||||
} else {
|
} else {
|
||||||
pCifsFile->netfid = netfid;
|
pCifsFile->netfid = netfid;
|
||||||
pCifsFile->invalidHandle = FALSE;
|
pCifsFile->invalidHandle = FALSE;
|
||||||
@@ -531,7 +531,7 @@ int cifs_closedir(struct inode *inode, struct file *file)
|
|||||||
(struct cifsFileInfo *)file->private_data;
|
(struct cifsFileInfo *)file->private_data;
|
||||||
char *ptmp;
|
char *ptmp;
|
||||||
|
|
||||||
cFYI(1, ("Closedir inode = 0x%p with ", inode));
|
cFYI(1, ("Closedir inode = 0x%p", inode));
|
||||||
|
|
||||||
xid = GetXid();
|
xid = GetXid();
|
||||||
|
|
||||||
@@ -605,7 +605,7 @@ int cifs_lock(struct file *file, int cmd, struct file_lock *pfLock)
|
|||||||
}
|
}
|
||||||
if (pfLock->fl_flags & FL_ACCESS)
|
if (pfLock->fl_flags & FL_ACCESS)
|
||||||
cFYI(1, ("Process suspended by mandatory locking - "
|
cFYI(1, ("Process suspended by mandatory locking - "
|
||||||
"not implemented yet "));
|
"not implemented yet"));
|
||||||
if (pfLock->fl_flags & FL_LEASE)
|
if (pfLock->fl_flags & FL_LEASE)
|
||||||
cFYI(1, ("Lease on file - not implemented yet"));
|
cFYI(1, ("Lease on file - not implemented yet"));
|
||||||
if (pfLock->fl_flags &
|
if (pfLock->fl_flags &
|
||||||
@@ -1377,7 +1377,7 @@ int cifs_fsync(struct file *file, struct dentry *dentry, int datasync)
|
|||||||
|
|
||||||
xid = GetXid();
|
xid = GetXid();
|
||||||
|
|
||||||
cFYI(1, ("Sync file - name: %s datasync: 0x%x ",
|
cFYI(1, ("Sync file - name: %s datasync: 0x%x",
|
||||||
dentry->d_name.name, datasync));
|
dentry->d_name.name, datasync));
|
||||||
|
|
||||||
rc = filemap_fdatawrite(inode->i_mapping);
|
rc = filemap_fdatawrite(inode->i_mapping);
|
||||||
@@ -1406,7 +1406,7 @@ int cifs_fsync(struct file *file, struct dentry *dentry, int datasync)
|
|||||||
/* fill in rpages then
|
/* fill in rpages then
|
||||||
result = cifs_pagein_inode(inode, index, rpages); */ /* BB finish */
|
result = cifs_pagein_inode(inode, index, rpages); */ /* BB finish */
|
||||||
|
|
||||||
/* cFYI(1, ("rpages is %d for sync page of Index %ld ", rpages, index));
|
/* cFYI(1, ("rpages is %d for sync page of Index %ld", rpages, index));
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if (rc < 0)
|
if (rc < 0)
|
||||||
@@ -1838,7 +1838,7 @@ static int cifs_readpage_worker(struct file *file, struct page *page,
|
|||||||
if (rc < 0)
|
if (rc < 0)
|
||||||
goto io_error;
|
goto io_error;
|
||||||
else
|
else
|
||||||
cFYI(1, ("Bytes read %d ",rc));
|
cFYI(1, ("Bytes read %d",rc));
|
||||||
|
|
||||||
file->f_dentry->d_inode->i_atime =
|
file->f_dentry->d_inode->i_atime =
|
||||||
current_fs_time(file->f_dentry->d_inode->i_sb);
|
current_fs_time(file->f_dentry->d_inode->i_sb);
|
||||||
|
@@ -41,7 +41,7 @@ int cifs_get_inode_info_unix(struct inode **pinode,
|
|||||||
char *tmp_path;
|
char *tmp_path;
|
||||||
|
|
||||||
pTcon = cifs_sb->tcon;
|
pTcon = cifs_sb->tcon;
|
||||||
cFYI(1, ("Getting info on %s ", search_path));
|
cFYI(1, ("Getting info on %s", search_path));
|
||||||
/* could have done a find first instead but this returns more info */
|
/* could have done a find first instead but this returns more info */
|
||||||
rc = CIFSSMBUnixQPathInfo(xid, pTcon, search_path, &findData,
|
rc = CIFSSMBUnixQPathInfo(xid, pTcon, search_path, &findData,
|
||||||
cifs_sb->local_nls, cifs_sb->mnt_cifs_flags &
|
cifs_sb->local_nls, cifs_sb->mnt_cifs_flags &
|
||||||
@@ -97,9 +97,9 @@ int cifs_get_inode_info_unix(struct inode **pinode,
|
|||||||
inode = *pinode;
|
inode = *pinode;
|
||||||
cifsInfo = CIFS_I(inode);
|
cifsInfo = CIFS_I(inode);
|
||||||
|
|
||||||
cFYI(1, ("Old time %ld ", cifsInfo->time));
|
cFYI(1, ("Old time %ld", cifsInfo->time));
|
||||||
cifsInfo->time = jiffies;
|
cifsInfo->time = jiffies;
|
||||||
cFYI(1, ("New time %ld ", cifsInfo->time));
|
cFYI(1, ("New time %ld", cifsInfo->time));
|
||||||
/* this is ok to set on every inode revalidate */
|
/* this is ok to set on every inode revalidate */
|
||||||
atomic_set(&cifsInfo->inUse,1);
|
atomic_set(&cifsInfo->inUse,1);
|
||||||
|
|
||||||
@@ -421,23 +421,23 @@ int cifs_get_inode_info(struct inode **pinode,
|
|||||||
inode = *pinode;
|
inode = *pinode;
|
||||||
cifsInfo = CIFS_I(inode);
|
cifsInfo = CIFS_I(inode);
|
||||||
cifsInfo->cifsAttrs = attr;
|
cifsInfo->cifsAttrs = attr;
|
||||||
cFYI(1, ("Old time %ld ", cifsInfo->time));
|
cFYI(1, ("Old time %ld", cifsInfo->time));
|
||||||
cifsInfo->time = jiffies;
|
cifsInfo->time = jiffies;
|
||||||
cFYI(1, ("New time %ld ", cifsInfo->time));
|
cFYI(1, ("New time %ld", cifsInfo->time));
|
||||||
|
|
||||||
/* blksize needs to be multiple of two. So safer to default to
|
/* blksize needs to be multiple of two. So safer to default to
|
||||||
blksize and blkbits set in superblock so 2**blkbits and blksize
|
blksize and blkbits set in superblock so 2**blkbits and blksize
|
||||||
will match rather than setting to:
|
will match rather than setting to:
|
||||||
(pTcon->ses->server->maxBuf - MAX_CIFS_HDR_SIZE) & 0xFFFFFE00;*/
|
(pTcon->ses->server->maxBuf - MAX_CIFS_HDR_SIZE) & 0xFFFFFE00;*/
|
||||||
|
|
||||||
/* Linux can not store file creation time unfortunately so we ignore it */
|
/* Linux can not store file creation time so ignore it */
|
||||||
inode->i_atime =
|
inode->i_atime =
|
||||||
cifs_NTtimeToUnix(le64_to_cpu(pfindData->LastAccessTime));
|
cifs_NTtimeToUnix(le64_to_cpu(pfindData->LastAccessTime));
|
||||||
inode->i_mtime =
|
inode->i_mtime =
|
||||||
cifs_NTtimeToUnix(le64_to_cpu(pfindData->LastWriteTime));
|
cifs_NTtimeToUnix(le64_to_cpu(pfindData->LastWriteTime));
|
||||||
inode->i_ctime =
|
inode->i_ctime =
|
||||||
cifs_NTtimeToUnix(le64_to_cpu(pfindData->ChangeTime));
|
cifs_NTtimeToUnix(le64_to_cpu(pfindData->ChangeTime));
|
||||||
cFYI(0, ("Attributes came in as 0x%x ", attr));
|
cFYI(0, ("Attributes came in as 0x%x", attr));
|
||||||
|
|
||||||
/* set default mode. will override for dirs below */
|
/* set default mode. will override for dirs below */
|
||||||
if (atomic_read(&cifsInfo->inUse) == 0)
|
if (atomic_read(&cifsInfo->inUse) == 0)
|
||||||
@@ -731,7 +731,7 @@ int cifs_mkdir(struct inode *inode, struct dentry *direntry, int mode)
|
|||||||
rc = CIFSSMBMkDir(xid, pTcon, full_path, cifs_sb->local_nls,
|
rc = CIFSSMBMkDir(xid, pTcon, full_path, cifs_sb->local_nls,
|
||||||
cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR);
|
cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
cFYI(1, ("cifs_mkdir returned 0x%x ", rc));
|
cFYI(1, ("cifs_mkdir returned 0x%x", rc));
|
||||||
d_drop(direntry);
|
d_drop(direntry);
|
||||||
} else {
|
} else {
|
||||||
inode->i_nlink++;
|
inode->i_nlink++;
|
||||||
@@ -798,7 +798,7 @@ int cifs_rmdir(struct inode *inode, struct dentry *direntry)
|
|||||||
char *full_path = NULL;
|
char *full_path = NULL;
|
||||||
struct cifsInodeInfo *cifsInode;
|
struct cifsInodeInfo *cifsInode;
|
||||||
|
|
||||||
cFYI(1, ("cifs_rmdir, inode = 0x%p with ", inode));
|
cFYI(1, ("cifs_rmdir, inode = 0x%p", inode));
|
||||||
|
|
||||||
xid = GetXid();
|
xid = GetXid();
|
||||||
|
|
||||||
@@ -1121,7 +1121,7 @@ int cifs_setattr(struct dentry *direntry, struct iattr *attrs)
|
|||||||
|
|
||||||
xid = GetXid();
|
xid = GetXid();
|
||||||
|
|
||||||
cFYI(1, ("In cifs_setattr, name = %s attrs->iavalid 0x%x ",
|
cFYI(1, ("In cifs_setattr, name = %s attrs->iavalid 0x%x",
|
||||||
direntry->d_name.name, attrs->ia_valid));
|
direntry->d_name.name, attrs->ia_valid));
|
||||||
|
|
||||||
cifs_sb = CIFS_SB(direntry->d_inode->i_sb);
|
cifs_sb = CIFS_SB(direntry->d_inode->i_sb);
|
||||||
@@ -1289,7 +1289,7 @@ int cifs_setattr(struct dentry *direntry, struct iattr *attrs)
|
|||||||
it may be useful to Windows - but we do
|
it may be useful to Windows - but we do
|
||||||
not want to set ctime unless some other
|
not want to set ctime unless some other
|
||||||
timestamp is changing */
|
timestamp is changing */
|
||||||
cFYI(1, ("CIFS - CTIME changed "));
|
cFYI(1, ("CIFS - CTIME changed"));
|
||||||
time_buf.ChangeTime =
|
time_buf.ChangeTime =
|
||||||
cpu_to_le64(cifs_UnixTimeToNT(attrs->ia_ctime));
|
cpu_to_le64(cifs_UnixTimeToNT(attrs->ia_ctime));
|
||||||
} else
|
} else
|
||||||
@@ -1356,7 +1356,7 @@ cifs_setattr_exit:
|
|||||||
|
|
||||||
void cifs_delete_inode(struct inode *inode)
|
void cifs_delete_inode(struct inode *inode)
|
||||||
{
|
{
|
||||||
cFYI(1, ("In cifs_delete_inode, inode = 0x%p ", inode));
|
cFYI(1, ("In cifs_delete_inode, inode = 0x%p", inode));
|
||||||
/* may have to add back in if and when safe distributed caching of
|
/* may have to add back in if and when safe distributed caching of
|
||||||
directories added e.g. via FindNotify */
|
directories added e.g. via FindNotify */
|
||||||
}
|
}
|
||||||
|
@@ -167,7 +167,7 @@ cifs_symlink(struct inode *inode, struct dentry *direntry, const char *symname)
|
|||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
cFYI(1, ("Full path: %s ", full_path));
|
cFYI(1, ("Full path: %s", full_path));
|
||||||
cFYI(1, ("symname is %s", symname));
|
cFYI(1, ("symname is %s", symname));
|
||||||
|
|
||||||
/* BB what if DFS and this volume is on different share? BB */
|
/* BB what if DFS and this volume is on different share? BB */
|
||||||
@@ -186,8 +186,7 @@ cifs_symlink(struct inode *inode, struct dentry *direntry, const char *symname)
|
|||||||
inode->i_sb,xid);
|
inode->i_sb,xid);
|
||||||
|
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
cFYI(1,
|
cFYI(1, ("Create symlink ok, getinodeinfo fail rc = %d",
|
||||||
("Create symlink worked but get_inode_info failed with rc = %d ",
|
|
||||||
rc));
|
rc));
|
||||||
} else {
|
} else {
|
||||||
if (pTcon->nocase)
|
if (pTcon->nocase)
|
||||||
@@ -289,7 +288,7 @@ cifs_readlink(struct dentry *direntry, char __user *pBuffer, int buflen)
|
|||||||
else {
|
else {
|
||||||
cFYI(1,("num referral: %d",num_referrals));
|
cFYI(1,("num referral: %d",num_referrals));
|
||||||
if(referrals) {
|
if(referrals) {
|
||||||
cFYI(1,("referral string: %s ",referrals));
|
cFYI(1,("referral string: %s",referrals));
|
||||||
strncpy(tmpbuffer, referrals, len-1);
|
strncpy(tmpbuffer, referrals, len-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -909,7 +909,7 @@ int cifs_readdir(struct file *file, void *direntry, filldir_t filldir)
|
|||||||
case 1:
|
case 1:
|
||||||
if (filldir(direntry, "..", 2, file->f_pos,
|
if (filldir(direntry, "..", 2, file->f_pos,
|
||||||
file->f_dentry->d_parent->d_inode->i_ino, DT_DIR) < 0) {
|
file->f_dentry->d_parent->d_inode->i_ino, DT_DIR) < 0) {
|
||||||
cERROR(1, ("Filldir for parent dir failed "));
|
cERROR(1, ("Filldir for parent dir failed"));
|
||||||
rc = -ENOMEM;
|
rc = -ENOMEM;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@@ -654,8 +654,7 @@ SendReceive(const unsigned int xid, struct cifsSesInfo *ses,
|
|||||||
|
|
||||||
if (in_buf->smb_buf_length > CIFSMaxBufSize + MAX_CIFS_HDR_SIZE - 4) {
|
if (in_buf->smb_buf_length > CIFSMaxBufSize + MAX_CIFS_HDR_SIZE - 4) {
|
||||||
up(&ses->server->tcpSem);
|
up(&ses->server->tcpSem);
|
||||||
cERROR(1,
|
cERROR(1, ("Illegal length, greater than maximum frame, %d",
|
||||||
("Illegal length, greater than maximum frame, %d ",
|
|
||||||
in_buf->smb_buf_length));
|
in_buf->smb_buf_length));
|
||||||
DeleteMidQEntry(midQ);
|
DeleteMidQEntry(midQ);
|
||||||
/* If not lock req, update # of requests on wire to server */
|
/* If not lock req, update # of requests on wire to server */
|
||||||
|
Reference in New Issue
Block a user