diff options
author | Trond Myklebust <trond.myklebust@primarydata.com> | 2016-06-23 10:35:48 -0400 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2016-07-05 19:11:03 -0400 |
commit | 89698b24d24f9c8b470a73351b0b7199c17e0153 (patch) | |
tree | 6d778072da2d0f6d1ed7765cbbc51104e9217376 /fs/nfs/direct.c | |
parent | 2f3c7d87a347b12f725f6128b3097727b91b230e (diff) |
NFS Cleanup: move call to generic_write_checks() into fs/nfs/direct.c
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'fs/nfs/direct.c')
-rw-r--r-- | fs/nfs/direct.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c index 826d4dace0e5..0169eca8eb42 100644 --- a/fs/nfs/direct.c +++ b/fs/nfs/direct.c | |||
@@ -988,6 +988,7 @@ static ssize_t nfs_direct_write_schedule_iovec(struct nfs_direct_req *dreq, | |||
988 | ssize_t nfs_file_direct_write(struct kiocb *iocb, struct iov_iter *iter) | 988 | ssize_t nfs_file_direct_write(struct kiocb *iocb, struct iov_iter *iter) |
989 | { | 989 | { |
990 | ssize_t result = -EINVAL; | 990 | ssize_t result = -EINVAL; |
991 | size_t count; | ||
991 | struct file *file = iocb->ki_filp; | 992 | struct file *file = iocb->ki_filp; |
992 | struct address_space *mapping = file->f_mapping; | 993 | struct address_space *mapping = file->f_mapping; |
993 | struct inode *inode = mapping->host; | 994 | struct inode *inode = mapping->host; |
@@ -998,8 +999,11 @@ ssize_t nfs_file_direct_write(struct kiocb *iocb, struct iov_iter *iter) | |||
998 | dfprintk(FILE, "NFS: direct write(%pD2, %zd@%Ld)\n", | 999 | dfprintk(FILE, "NFS: direct write(%pD2, %zd@%Ld)\n", |
999 | file, iov_iter_count(iter), (long long) iocb->ki_pos); | 1000 | file, iov_iter_count(iter), (long long) iocb->ki_pos); |
1000 | 1001 | ||
1001 | nfs_add_stats(mapping->host, NFSIOS_DIRECTWRITTENBYTES, | 1002 | result = generic_write_checks(iocb, iter); |
1002 | iov_iter_count(iter)); | 1003 | if (result <= 0) |
1004 | return result; | ||
1005 | count = result; | ||
1006 | nfs_add_stats(mapping->host, NFSIOS_DIRECTWRITTENBYTES, count); | ||
1003 | 1007 | ||
1004 | pos = iocb->ki_pos; | 1008 | pos = iocb->ki_pos; |
1005 | end = (pos + iov_iter_count(iter) - 1) >> PAGE_SHIFT; | 1009 | end = (pos + iov_iter_count(iter) - 1) >> PAGE_SHIFT; |
@@ -1017,7 +1021,7 @@ ssize_t nfs_file_direct_write(struct kiocb *iocb, struct iov_iter *iter) | |||
1017 | goto out_unlock; | 1021 | goto out_unlock; |
1018 | } | 1022 | } |
1019 | 1023 | ||
1020 | task_io_account_write(iov_iter_count(iter)); | 1024 | task_io_account_write(count); |
1021 | 1025 | ||
1022 | result = -ENOMEM; | 1026 | result = -ENOMEM; |
1023 | dreq = nfs_direct_req_alloc(); | 1027 | dreq = nfs_direct_req_alloc(); |
@@ -1025,7 +1029,7 @@ ssize_t nfs_file_direct_write(struct kiocb *iocb, struct iov_iter *iter) | |||
1025 | goto out_unlock; | 1029 | goto out_unlock; |
1026 | 1030 | ||
1027 | dreq->inode = inode; | 1031 | dreq->inode = inode; |
1028 | dreq->bytes_left = dreq->max_count = iov_iter_count(iter); | 1032 | dreq->bytes_left = dreq->max_count = count; |
1029 | dreq->io_start = pos; | 1033 | dreq->io_start = pos; |
1030 | dreq->ctx = get_nfs_open_context(nfs_file_open_context(iocb->ki_filp)); | 1034 | dreq->ctx = get_nfs_open_context(nfs_file_open_context(iocb->ki_filp)); |
1031 | l_ctx = nfs_get_lock_context(dreq->ctx); | 1035 | l_ctx = nfs_get_lock_context(dreq->ctx); |