diff options
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 9634189b8545..682f65fe09b5 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) | |||
268 | 268 | ||
269 | if (iov_iter_rw(iter) == READ) | 269 | if (iov_iter_rw(iter) == READ) |
270 | return nfs_file_direct_read(iocb, iter, pos); | 270 | return nfs_file_direct_read(iocb, iter, pos); |
271 | return nfs_file_direct_write(iocb, iter, pos); | 271 | return nfs_file_direct_write(iocb, iter); |
272 | #endif /* CONFIG_NFS_SWAP */ | 272 | #endif /* CONFIG_NFS_SWAP */ |
273 | } | 273 | } |
274 | 274 | ||
@@ -959,8 +959,7 @@ static ssize_t nfs_direct_write_schedule_iovec(struct nfs_direct_req *dreq, | |||
959 | * Note that O_APPEND is not supported for NFS direct writes, as there | 959 | * Note that O_APPEND is not supported for NFS direct writes, as there |
960 | * is no atomic O_APPEND write facility in the NFS protocol. | 960 | * is no atomic O_APPEND write facility in the NFS protocol. |
961 | */ | 961 | */ |
962 | ssize_t nfs_file_direct_write(struct kiocb *iocb, struct iov_iter *iter, | 962 | ssize_t nfs_file_direct_write(struct kiocb *iocb, struct iov_iter *iter) |
963 | loff_t pos) | ||
964 | { | 963 | { |
965 | ssize_t result = -EINVAL; | 964 | ssize_t result = -EINVAL; |
966 | struct file *file = iocb->ki_filp; | 965 | struct file *file = iocb->ki_filp; |
@@ -968,15 +967,11 @@ ssize_t nfs_file_direct_write(struct kiocb *iocb, struct iov_iter *iter, | |||
968 | struct inode *inode = mapping->host; | 967 | struct inode *inode = mapping->host; |
969 | struct nfs_direct_req *dreq; | 968 | struct nfs_direct_req *dreq; |
970 | struct nfs_lock_context *l_ctx; | 969 | struct nfs_lock_context *l_ctx; |
971 | loff_t end; | 970 | loff_t pos, end; |
972 | 971 | ||
973 | dfprintk(FILE, "NFS: direct write(%pD2, %zd@%Ld)\n", | 972 | dfprintk(FILE, "NFS: direct write(%pD2, %zd@%Ld)\n", |
974 | file, iov_iter_count(iter), (long long) iocb->ki_pos); | 973 | file, iov_iter_count(iter), (long long) iocb->ki_pos); |
975 | 974 | ||
976 | result = generic_write_checks(iocb, iter); | ||
977 | if (result <= 0) | ||
978 | goto out; | ||
979 | |||
980 | nfs_add_stats(mapping->host, NFSIOS_DIRECTWRITTENBYTES, | 975 | nfs_add_stats(mapping->host, NFSIOS_DIRECTWRITTENBYTES, |
981 | iov_iter_count(iter)); | 976 | iov_iter_count(iter)); |
982 | 977 | ||
@@ -1044,7 +1039,6 @@ out_release: | |||
1044 | nfs_direct_req_release(dreq); | 1039 | nfs_direct_req_release(dreq); |
1045 | out_unlock: | 1040 | out_unlock: |
1046 | mutex_unlock(&inode->i_mutex); | 1041 | mutex_unlock(&inode->i_mutex); |
1047 | out: | ||
1048 | return result; | 1042 | return result; |
1049 | } | 1043 | } |
1050 | 1044 | ||