Merge master.kernel.org:/pub/scm/linux/kernel/git/sfrench/cifs-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/sfrench/cifs-2.6: [CIFS] Fix minor problem with previous patch [CIFS] Fix mount failure when domain not specified [CIFS] Explicitly set stat->blksize [CIFS] NFS stress test generates flood of "close with pending write" messages
This commit is contained in:
Коммит
170926993a
|
@ -492,10 +492,14 @@ int cifs_close(struct inode *inode, struct file *file)
|
|||
the struct would be in each open file,
|
||||
but this should give enough time to
|
||||
clear the socket */
|
||||
cERROR(1,("close with pending writes"));
|
||||
#ifdef CONFIG_CIFS_DEBUG2
|
||||
cFYI(1,("close delay, write pending"));
|
||||
#endif /* DEBUG2 */
|
||||
msleep(timeout);
|
||||
timeout *= 4;
|
||||
}
|
||||
}
|
||||
if(atomic_read(&pSMBFile->wrtPending))
|
||||
cERROR(1,("close with pending writes"));
|
||||
rc = CIFSSMBClose(xid, pTcon,
|
||||
pSMBFile->netfid);
|
||||
}
|
||||
|
|
|
@ -1089,8 +1089,10 @@ int cifs_getattr(struct vfsmount *mnt, struct dentry *dentry,
|
|||
struct kstat *stat)
|
||||
{
|
||||
int err = cifs_revalidate(dentry);
|
||||
if (!err)
|
||||
if (!err) {
|
||||
generic_fillattr(dentry->d_inode, stat);
|
||||
stat->blksize = CIFS_MAX_MSGSIZE;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
|
@ -90,7 +90,9 @@ static void unicode_ssetup_strings(char ** pbcc_area, struct cifsSesInfo *ses,
|
|||
} */
|
||||
/* copy user */
|
||||
if(ses->userName == NULL) {
|
||||
/* BB what about null user mounts - check that we do this BB */
|
||||
/* null user mount */
|
||||
*bcc_ptr = 0;
|
||||
*(bcc_ptr+1) = 0;
|
||||
} else { /* 300 should be long enough for any conceivable user name */
|
||||
bytes_ret = cifs_strtoUCS((__le16 *) bcc_ptr, ses->userName,
|
||||
300, nls_cp);
|
||||
|
@ -98,10 +100,13 @@ static void unicode_ssetup_strings(char ** pbcc_area, struct cifsSesInfo *ses,
|
|||
bcc_ptr += 2 * bytes_ret;
|
||||
bcc_ptr += 2; /* account for null termination */
|
||||
/* copy domain */
|
||||
if(ses->domainName == NULL)
|
||||
bytes_ret = cifs_strtoUCS((__le16 *) bcc_ptr,
|
||||
"CIFS_LINUX_DOM", 32, nls_cp);
|
||||
else
|
||||
if(ses->domainName == NULL) {
|
||||
/* Sending null domain better than using a bogus domain name (as
|
||||
we did briefly in 2.6.18) since server will use its default */
|
||||
*bcc_ptr = 0;
|
||||
*(bcc_ptr+1) = 0;
|
||||
bytes_ret = 0;
|
||||
} else
|
||||
bytes_ret = cifs_strtoUCS((__le16 *) bcc_ptr, ses->domainName,
|
||||
256, nls_cp);
|
||||
bcc_ptr += 2 * bytes_ret;
|
||||
|
@ -144,13 +149,11 @@ static void ascii_ssetup_strings(char ** pbcc_area, struct cifsSesInfo *ses,
|
|||
|
||||
/* copy domain */
|
||||
|
||||
if(ses->domainName == NULL) {
|
||||
strcpy(bcc_ptr, "CIFS_LINUX_DOM");
|
||||
bcc_ptr += 14; /* strlen(CIFS_LINUX_DOM) */
|
||||
} else {
|
||||
if(ses->domainName != NULL) {
|
||||
strncpy(bcc_ptr, ses->domainName, 256);
|
||||
bcc_ptr += strnlen(ses->domainName, 256);
|
||||
}
|
||||
} /* else we will send a null domain name
|
||||
so the server will default to its own domain */
|
||||
*bcc_ptr = 0;
|
||||
bcc_ptr++;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче