diff options
author | M. Mohan Kumar <mohan@in.ibm.com> | 2011-03-16 17:10:49 +0100 |
---|---|---|
committer | Eric Van Hensbergen <ericvh@gmail.com> | 2011-03-22 22:32:49 +0100 |
commit | aaf0ef1d2bce05cfd06cf29c96a6973df4d0a6a8 (patch) | |
tree | 32c0bba396dcdf5e5c920aff3560bed48f4c159f /fs/9p/vfs_file.c | |
parent | [net/9p] Don't re-pin pages on retrying virtqueue_add_buf(). (diff) | |
download | linux-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.c | 7 |
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; } |