Orangefs: set pos after generic_write_checks

if we are appending, generic_write_checks would have updated
pos to the end of the file...

Signed-off-by: Mike Marshall <hubcap@omnibond.com>
This commit is contained in:
Mike Marshall
2015-11-13 13:05:11 -05:00
parent 8092895f75
commit 3f1b6947dc

View File

@@ -430,7 +430,7 @@ static ssize_t pvfs2_file_read_iter(struct kiocb *iocb, struct iov_iter *iter)
static ssize_t pvfs2_file_write_iter(struct kiocb *iocb, struct iov_iter *iter) static ssize_t pvfs2_file_write_iter(struct kiocb *iocb, struct iov_iter *iter)
{ {
struct file *file = iocb->ki_filp; struct file *file = iocb->ki_filp;
loff_t pos = *(&iocb->ki_pos); loff_t pos;
ssize_t rc; ssize_t rc;
BUG_ON(iocb->private); BUG_ON(iocb->private);
@@ -461,6 +461,13 @@ static ssize_t pvfs2_file_write_iter(struct kiocb *iocb, struct iov_iter *iter)
goto out; goto out;
} }
/*
* if we are appending, generic_write_checks would have updated
* pos to the end of the file, so we will wait till now to set
* pos...
*/
pos = *(&iocb->ki_pos);
rc = do_readv_writev(PVFS_IO_WRITE, rc = do_readv_writev(PVFS_IO_WRITE,
file, file,
&pos, &pos,