diff options
author | J. Bruce Fields <bfields@redhat.com> | 2014-03-11 16:51:23 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2014-05-30 17:31:58 -0400 |
commit | 6ff9897d2bcf4036dfd139caeddd6f0a51c9ca06 (patch) | |
tree | 5d01218af40788b8655b5322bef8755a0713f219 | |
parent | 4f0cefbf389c28b0a2be34960797adb0c84ee43d (diff) |
nfsd4: minor encode_read cleanup
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
-rw-r--r-- | fs/nfsd/nfs4xdr.c | 10 |
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 | ||