diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2015-04-09 14:11:08 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2015-04-15 15:04:27 -0400 |
commit | 65a4a1cad7c56e7056fb4b35ac2d93695612612c (patch) | |
tree | 4003fa611739da71f5ebdfe323f1f294743ebf35 /fs/nfs/direct.c | |
parent | 7da839c475894ea872ec909a5d2e83dddccff5be (diff) | |
download | op-kernel-dev-65a4a1cad7c56e7056fb4b35ac2d93695612612c.zip op-kernel-dev-65a4a1cad7c56e7056fb4b35ac2d93695612612c.tar.gz |
nfs: generic_write_checks() shouldn't be done on swapout...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/nfs/direct.c')
-rw-r--r-- | fs/nfs/direct.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c index 9634189..682f65f 100644 --- a/fs/nfs/direct.c +++ b/fs/nfs/direct.c @@ -268,7 +268,7 @@ ssize_t nfs_direct_IO(struct kiocb *iocb, struct iov_iter *iter, loff_t pos) if (iov_iter_rw(iter) == READ) return nfs_file_direct_read(iocb, iter, pos); - return nfs_file_direct_write(iocb, iter, pos); + return nfs_file_direct_write(iocb, iter); #endif /* CONFIG_NFS_SWAP */ } @@ -959,8 +959,7 @@ static ssize_t nfs_direct_write_schedule_iovec(struct nfs_direct_req *dreq, * Note that O_APPEND is not supported for NFS direct writes, as there * is no atomic O_APPEND write facility in the NFS protocol. */ -ssize_t nfs_file_direct_write(struct kiocb *iocb, struct iov_iter *iter, - loff_t pos) +ssize_t nfs_file_direct_write(struct kiocb *iocb, struct iov_iter *iter) { ssize_t result = -EINVAL; struct file *file = iocb->ki_filp; @@ -968,15 +967,11 @@ ssize_t nfs_file_direct_write(struct kiocb *iocb, struct iov_iter *iter, struct inode *inode = mapping->host; struct nfs_direct_req *dreq; struct nfs_lock_context *l_ctx; - loff_t end; + loff_t pos, end; dfprintk(FILE, "NFS: direct write(%pD2, %zd@%Ld)\n", file, iov_iter_count(iter), (long long) iocb->ki_pos); - result = generic_write_checks(iocb, iter); - if (result <= 0) - goto out; - nfs_add_stats(mapping->host, NFSIOS_DIRECTWRITTENBYTES, iov_iter_count(iter)); @@ -1044,7 +1039,6 @@ out_release: nfs_direct_req_release(dreq); out_unlock: mutex_unlock(&inode->i_mutex); -out: return result; } |