summaryrefslogtreecommitdiffstats
path: root/fs/cifs/inode.c
diff options
context:
space:
mode:
authorSteve French <sfrench@us.ibm.com>2005-10-20 13:44:56 -0700
committerSteve French <sfrench@us.ibm.com>2005-10-20 13:44:56 -0700
commit23e7dd7d95f6fdc167a6d6ddea79ced0af33bbff (patch)
treedc7f5947df09eaca23c25a4d4a908e4dfe81cf40 /fs/cifs/inode.c
parent84d2f07e8e5e2424eec0f5acfef6792c924a0549 (diff)
downloadlinux-23e7dd7d95f6fdc167a6d6ddea79ced0af33bbff.tar.bz2
[CIFS] Defer close of file handle slightly if there are pending writes that
need to get in ahead of it that depend on that file handle. Fixes occassional bad file handle errors on write with heavy use multiple process cases. Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/inode.c')
-rw-r--r--fs/cifs/inode.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index ff4d1cc7c248..912d401600f6 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -1006,6 +1006,7 @@ int cifs_setattr(struct dentry *direntry, struct iattr *attrs)
__u32 npid = open_file->pid;
rc = CIFSSMBSetFileSize(xid, pTcon, attrs->ia_size,
nfid, npid, FALSE);
+ atomic_dec(&open_file->wrtPending);
cFYI(1,("SetFSize for attrs rc = %d", rc));
if(rc == -EINVAL) {
int bytes_written;