NFS: Clean up new multi-segment direct I/O changes
Subsystems (2)
PATCH 4/4 NFS: Clean up new multi-segment direct I/O changes
Simplify calling sequence of nfs_direct_{read,write}_schedule(), and rename them to reflect their new role.
Signed-off-by Chuck Lever <[email protected]>
---
fs/nfs/direct.c | 22 +++++++++++++--------- 1 files changed, 13 insertions(+), 9 deletions(-)
fs/nfs/direct.c +13 -9
@@ -263,10 +263,14 @@ static const struct rpc_call_ops nfs_read_direct_ops = {* handled automatically by nfs_direct_read_result(). Otherwise, if * no requests have been sent, just return an error. */ -static ssize_t nfs_direct_read_schedule (struct nfs_direct_req *dreq,unsigned long user_addr,size_t count,loff_t pos) +static ssize_t nfs_direct_read_schedule_segment (struct nfs_direct_req *dreq, +const struct iovec *iov, +loff_t pos) {struct nfs_open_context *ctx = dreq->ctx;struct inode *inode = ctx->path.dentry->d_inode; +unsigned long user_addr = (unsigned long )iov->iov_base; +size_t count = iov->iov_len;size_t rsize =NFS_SERVER (inode)->rsize;unsigned int pgbase;int result;
@@ -363,9 +367,7 @@ static ssize_t nfs_direct_read_schedule_iovec(struct nfs_direct_req *dreq,for (seg =0 ; seg < nr_segs; seg++) {const struct iovec *vec = &iov[seg]; - result =nfs_direct_read_schedule (dreq, - (unsigned long )vec->iov_base, - vec->iov_len, pos); + result =nfs_direct_read_schedule_segment (dreq, vec, pos);if (result <0 )break ; requested_bytes += result;
@@ -631,10 +633,14 @@ static const struct rpc_call_ops nfs_write_direct_ops = {* handled automatically by nfs_direct_write_result(). Otherwise, if * no requests have been sent, just return an error. */ -static ssize_t nfs_direct_write_schedule (struct nfs_direct_req *dreq,unsigned long user_addr,size_t count,loff_t pos,int sync) +static ssize_t nfs_direct_write_schedule_segment (struct nfs_direct_req *dreq, +const struct iovec *iov, +loff_t pos,int sync) {struct nfs_open_context *ctx = dreq->ctx;struct inode *inode = ctx->path.dentry->d_inode; +unsigned long user_addr = (unsigned long )iov->iov_base; +size_t count = iov->iov_len;size_t wsize =NFS_SERVER (inode)->wsize;unsigned int pgbase;int result;
@@ -735,10 +741,8 @@ static ssize_t nfs_direct_write_schedule_iovec(struct nfs_direct_req *dreq,for (seg =0 ; seg < nr_segs; seg++) {const struct iovec *vec = &iov[seg]; - result =nfs_direct_write_schedule (dreq, - (unsigned long )vec->iov_base, - vec->iov_len, - pos, sync); + result =nfs_direct_write_schedule_segment (dreq, vec, + pos, sync);if (result <0 )break ; requested_bytes += result;
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs