aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ. Bruce Fields <bfields@redhat.com>2014-03-11 16:51:23 -0400
committerJ. Bruce Fields <bfields@redhat.com>2014-05-30 17:31:58 -0400
commit6ff9897d2bcf4036dfd139caeddd6f0a51c9ca06 (patch)
tree5d01218af40788b8655b5322bef8755a0713f219
parent4f0cefbf389c28b0a2be34960797adb0c84ee43d (diff)
nfsd4: minor encode_read cleanup
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
-rw-r--r--fs/nfsd/nfs4xdr.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index 8b3d24de9cac..8ce6c8d5ee8a 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -3076,18 +3076,20 @@ nfsd4_encode_read(struct nfsd4_compoundres *resp, __be32 nfserr,
3076 3076
3077 len = maxcount; 3077 len = maxcount;
3078 v = 0; 3078 v = 0;
3079 while (len > 0) { 3079 while (len) {
3080 int thislen;
3081
3080 page = *(resp->rqstp->rq_next_page); 3082 page = *(resp->rqstp->rq_next_page);
3081 if (!page) { /* ran out of pages */ 3083 if (!page) { /* ran out of pages */
3082 maxcount -= len; 3084 maxcount -= len;
3083 break; 3085 break;
3084 } 3086 }
3087 thislen = min_t(long, len, PAGE_SIZE);
3085 resp->rqstp->rq_vec[v].iov_base = page_address(page); 3088 resp->rqstp->rq_vec[v].iov_base = page_address(page);
3086 resp->rqstp->rq_vec[v].iov_len = 3089 resp->rqstp->rq_vec[v].iov_len = thislen;
3087 len < PAGE_SIZE ? len : PAGE_SIZE;
3088 resp->rqstp->rq_next_page++; 3090 resp->rqstp->rq_next_page++;
3089 v++; 3091 v++;
3090 len -= PAGE_SIZE; 3092 len -= thislen;
3091 } 3093 }
3092 read->rd_vlen = v; 3094 read->rd_vlen = v;
3093 3095