|
@@ -486,9 +486,7 @@ ssize_t nfs_file_direct_read(struct kiocb *iocb, struct iov_iter *iter,
|
|
struct nfs_direct_req *dreq;
|
|
struct nfs_direct_req *dreq;
|
|
struct nfs_lock_context *l_ctx;
|
|
struct nfs_lock_context *l_ctx;
|
|
ssize_t result = -EINVAL;
|
|
ssize_t result = -EINVAL;
|
|
- size_t count;
|
|
|
|
-
|
|
|
|
- count = iov_length(iter->iov, iter->nr_segs);
|
|
|
|
|
|
+ size_t count = iov_iter_count(iter);
|
|
nfs_add_stats(mapping->host, NFSIOS_DIRECTREADBYTES, count);
|
|
nfs_add_stats(mapping->host, NFSIOS_DIRECTREADBYTES, count);
|
|
|
|
|
|
dfprintk(FILE, "NFS: direct read(%pD2, %zd@%Ld)\n",
|
|
dfprintk(FILE, "NFS: direct read(%pD2, %zd@%Ld)\n",
|
|
@@ -877,7 +875,7 @@ static ssize_t nfs_direct_write_schedule_iovec(struct nfs_direct_req *dreq,
|
|
get_dreq(dreq);
|
|
get_dreq(dreq);
|
|
atomic_inc(&inode->i_dio_count);
|
|
atomic_inc(&inode->i_dio_count);
|
|
|
|
|
|
- NFS_I(dreq->inode)->write_io += iov_length(iter->iov, iter->nr_segs);
|
|
|
|
|
|
+ NFS_I(dreq->inode)->write_io += iov_iter_count(iter);
|
|
for (seg = 0; seg < iter->nr_segs; seg++) {
|
|
for (seg = 0; seg < iter->nr_segs; seg++) {
|
|
const struct iovec *vec = &iter->iov[seg];
|
|
const struct iovec *vec = &iter->iov[seg];
|
|
result = nfs_direct_write_schedule_segment(&desc, vec, pos, uio);
|
|
result = nfs_direct_write_schedule_segment(&desc, vec, pos, uio);
|
|
@@ -936,9 +934,7 @@ ssize_t nfs_file_direct_write(struct kiocb *iocb, struct iov_iter *iter,
|
|
struct nfs_direct_req *dreq;
|
|
struct nfs_direct_req *dreq;
|
|
struct nfs_lock_context *l_ctx;
|
|
struct nfs_lock_context *l_ctx;
|
|
loff_t end;
|
|
loff_t end;
|
|
- size_t count;
|
|
|
|
-
|
|
|
|
- count = iov_length(iter->iov, iter->nr_segs);
|
|
|
|
|
|
+ size_t count = iov_iter_count(iter);
|
|
end = (pos + count - 1) >> PAGE_CACHE_SHIFT;
|
|
end = (pos + count - 1) >> PAGE_CACHE_SHIFT;
|
|
|
|
|
|
nfs_add_stats(mapping->host, NFSIOS_DIRECTWRITTENBYTES, count);
|
|
nfs_add_stats(mapping->host, NFSIOS_DIRECTWRITTENBYTES, count);
|