Skip to content

Commit 89698b2

Browse files
committed
NFS Cleanup: move call to generic_write_checks() into fs/nfs/direct.c
Signed-off-by: Trond Myklebust <[email protected]>
1 parent 2f3c7d8 commit 89698b2

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

fs/nfs/direct.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -988,6 +988,7 @@ static ssize_t nfs_direct_write_schedule_iovec(struct nfs_direct_req *dreq,
988988
ssize_t nfs_file_direct_write(struct kiocb *iocb, struct iov_iter *iter)
989989
{
990990
ssize_t result = -EINVAL;
991+
size_t count;
991992
struct file *file = iocb->ki_filp;
992993
struct address_space *mapping = file->f_mapping;
993994
struct inode *inode = mapping->host;
@@ -998,8 +999,11 @@ ssize_t nfs_file_direct_write(struct kiocb *iocb, struct iov_iter *iter)
998999
dfprintk(FILE, "NFS: direct write(%pD2, %zd@%Ld)\n",
9991000
file, iov_iter_count(iter), (long long) iocb->ki_pos);
10001001

1001-
nfs_add_stats(mapping->host, NFSIOS_DIRECTWRITTENBYTES,
1002-
iov_iter_count(iter));
1002+
result = generic_write_checks(iocb, iter);
1003+
if (result <= 0)
1004+
return result;
1005+
count = result;
1006+
nfs_add_stats(mapping->host, NFSIOS_DIRECTWRITTENBYTES, count);
10031007

10041008
pos = iocb->ki_pos;
10051009
end = (pos + iov_iter_count(iter) - 1) >> PAGE_SHIFT;
@@ -1017,15 +1021,15 @@ ssize_t nfs_file_direct_write(struct kiocb *iocb, struct iov_iter *iter)
10171021
goto out_unlock;
10181022
}
10191023

1020-
task_io_account_write(iov_iter_count(iter));
1024+
task_io_account_write(count);
10211025

10221026
result = -ENOMEM;
10231027
dreq = nfs_direct_req_alloc();
10241028
if (!dreq)
10251029
goto out_unlock;
10261030

10271031
dreq->inode = inode;
1028-
dreq->bytes_left = dreq->max_count = iov_iter_count(iter);
1032+
dreq->bytes_left = dreq->max_count = count;
10291033
dreq->io_start = pos;
10301034
dreq->ctx = get_nfs_open_context(nfs_file_open_context(iocb->ki_filp));
10311035
l_ctx = nfs_get_lock_context(dreq->ctx);

fs/nfs/file.c

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -629,12 +629,8 @@ ssize_t nfs_file_write(struct kiocb *iocb, struct iov_iter *from)
629629
if (result)
630630
return result;
631631

632-
if (iocb->ki_flags & IOCB_DIRECT) {
633-
result = generic_write_checks(iocb, from);
634-
if (result <= 0)
635-
return result;
632+
if (iocb->ki_flags & IOCB_DIRECT)
636633
return nfs_file_direct_write(iocb, from);
637-
}
638634

639635
dprintk("NFS: write(%pD2, %zu@%Ld)\n",
640636
file, count, (long long) iocb->ki_pos);

0 commit comments

Comments
 (0)