diff options
author | Christoph Hellwig <hch@lst.de> | 2016-04-07 08:52:01 -0700 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2016-05-01 19:58:39 -0400 |
commit | e259221763a40403d5bb232209998e8c45804ab8 (patch) | |
tree | 6f940ba17f38b693e495ad5267b1988dd66c9c0f /fs/cifs | |
parent | dde0c2e79848298cc25621ad080d47f94dbd7cce (diff) | |
download | op-kernel-dev-e259221763a40403d5bb232209998e8c45804ab8.zip op-kernel-dev-e259221763a40403d5bb232209998e8c45804ab8.tar.gz |
fs: simplify the generic_write_sync prototype
The kiocb already has the new position, so use that. The only interesting
case is AIO, where we currently don't bother updating ki_pos. We're about
to free the kiocb after we're done, so we might as well update it to make
everyone's life simpler.
While we're at it also return the bytes written argument passed in if
we were successful so that the boilerplate error switch code in the
callers can go away.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/cifs')
-rw-r--r-- | fs/cifs/file.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/fs/cifs/file.c b/fs/cifs/file.c index b22b68c..9b51d49 100644 --- a/fs/cifs/file.c +++ b/fs/cifs/file.c @@ -2687,11 +2687,8 @@ cifs_writev(struct kiocb *iocb, struct iov_iter *from) out: inode_unlock(inode); - if (rc > 0) { - ssize_t err = generic_write_sync(iocb, iocb->ki_pos - rc, rc); - if (err < 0) - rc = err; - } + if (rc > 0) + rc = generic_write_sync(iocb, rc); up_read(&cinode->lock_sem); return rc; } |