9p: use the updated offset given by generic_write_checks
authorM. Mohan Kumar <mohan@in.ibm.com>
Wed, 16 Mar 2011 16:10:49 +0000 (21:40 +0530)
committerEric Van Hensbergen <ericvh@gmail.com>
Tue, 22 Mar 2011 21:32:49 +0000 (16:32 -0500)
Without this fix, even if a file is opened in O_APPEND mode, data will be
written at current file position instead of end of file.

Signed-off-by: M. Mohan Kumar <mohan@in.ibm.com>
Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
fs/9p/vfs_file.c

index 6997eb62fbba264827f34f1a2b1299f6c4ba43ab..ffed55817f0cd8f5cd1f6560e66805935419835a 100644 (file)
@@ -508,9 +508,12 @@ v9fs_file_write(struct file *filp, const char __user * data,
        if (!count)
                goto out;
 
-       return v9fs_file_write_internal(filp->f_path.dentry->d_inode,
+       retval = v9fs_file_write_internal(filp->f_path.dentry->d_inode,
                                        filp->private_data,
-                                       data, count, offset, 1);
+                                       data, count, &origin, 1);
+       /* update offset on successful write */
+       if (retval > 0)
+               *offset = origin;
 out:
        return retval;
 }