summaryrefslogtreecommitdiffstats
path: root/fs/9p/vfs_file.c
diff options
context:
space:
mode:
authorM. Mohan Kumar <mohan@in.ibm.com>2011-03-16 17:10:49 +0100
committerEric Van Hensbergen <ericvh@gmail.com>2011-03-22 22:32:49 +0100
commitaaf0ef1d2bce05cfd06cf29c96a6973df4d0a6a8 (patch)
tree32c0bba396dcdf5e5c920aff3560bed48f4c159f /fs/9p/vfs_file.c
parent[net/9p] Don't re-pin pages on retrying virtqueue_add_buf(). (diff)
downloadlinux-aaf0ef1d2bce05cfd06cf29c96a6973df4d0a6a8.tar.xz
linux-aaf0ef1d2bce05cfd06cf29c96a6973df4d0a6a8.zip
9p: use the updated offset given by generic_write_checks
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>
Diffstat (limited to 'fs/9p/vfs_file.c')
-rw-r--r--fs/9p/vfs_file.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/9p/vfs_file.c b/fs/9p/vfs_file.c
index 6997eb62fbba..ffed55817f0c 100644
--- a/fs/9p/vfs_file.c
+++ b/fs/9p/vfs_file.c
@@ -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;
}