diff options
| author | J. Bruce Fields <bfields@redhat.com> | 2012-12-10 18:01:37 -0500 |
|---|---|---|
| committer | J. Bruce Fields <bfields@redhat.com> | 2012-12-17 22:00:16 -0500 |
| commit | afc59400d6c65bad66d4ad0b2daf879cbff8e23e (patch) | |
| tree | cc4c1c4dcf01106259d4f18d637cb2d1115ef980 | |
| parent | 79f77bf9a4e3dd5ead006b8f17e7c4ff07d8374e (diff) | |
nfsd4: cleanup: replace rq_resused count by rq_next_page pointer
It may be a matter of personal taste, but I find this makes the code
clearer.
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
| -rw-r--r-- | fs/nfsd/nfs2acl.c | 2 | ||||
| -rw-r--r-- | fs/nfsd/nfs3acl.c | 2 | ||||
| -rw-r--r-- | fs/nfsd/nfs3proc.c | 6 | ||||
| -rw-r--r-- | fs/nfsd/nfs3xdr.c | 33 | ||||
| -rw-r--r-- | fs/nfsd/nfs4xdr.c | 24 | ||||
| -rw-r--r-- | fs/nfsd/nfsxdr.c | 11 | ||||
| -rw-r--r-- | fs/nfsd/vfs.c | 18 | ||||
| -rw-r--r-- | include/linux/sunrpc/svc.h | 6 | ||||
| -rw-r--r-- | net/sunrpc/svc.c | 2 | ||||
| -rw-r--r-- | net/sunrpc/svcsock.c | 2 | ||||
| -rw-r--r-- | net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 10 | ||||
| -rw-r--r-- | net/sunrpc/xprtrdma/svc_rdma_sendto.c | 4 |
12 files changed, 61 insertions, 59 deletions
diff --git a/fs/nfsd/nfs2acl.c b/fs/nfsd/nfs2acl.c index b314888825d5..9170861c804a 100644 --- a/fs/nfsd/nfs2acl.c +++ b/fs/nfsd/nfs2acl.c | |||
| @@ -253,7 +253,7 @@ static int nfsaclsvc_encode_getaclres(struct svc_rqst *rqstp, __be32 *p, | |||
| 253 | (resp->mask & NFS_ACL) ? resp->acl_access : NULL, | 253 | (resp->mask & NFS_ACL) ? resp->acl_access : NULL, |
| 254 | (resp->mask & NFS_DFACL) ? resp->acl_default : NULL); | 254 | (resp->mask & NFS_DFACL) ? resp->acl_default : NULL); |
| 255 | while (w > 0) { | 255 | while (w > 0) { |
| 256 | if (!rqstp->rq_respages[rqstp->rq_resused++]) | 256 | if (!*(rqstp->rq_next_page++)) |
| 257 | return 0; | 257 | return 0; |
| 258 | w -= PAGE_SIZE; | 258 | w -= PAGE_SIZE; |
| 259 | } | 259 | } |
diff --git a/fs/nfsd/nfs3acl.c b/fs/nfsd/nfs3acl.c index a596e9d987e4..9cbc1a841f87 100644 --- a/fs/nfsd/nfs3acl.c +++ b/fs/nfsd/nfs3acl.c | |||
| @@ -184,7 +184,7 @@ static int nfs3svc_encode_getaclres(struct svc_rqst *rqstp, __be32 *p, | |||
| 184 | (resp->mask & NFS_ACL) ? resp->acl_access : NULL, | 184 | (resp->mask & NFS_ACL) ? resp->acl_access : NULL, |
| 185 | (resp->mask & NFS_DFACL) ? resp->acl_default : NULL); | 185 | (resp->mask & NFS_DFACL) ? resp->acl_default : NULL); |
| 186 | while (w > 0) { | 186 | while (w > 0) { |
| 187 | if (!rqstp->rq_respages[rqstp->rq_resused++]) | 187 | if (!*(rqstp->rq_next_page++)) |
| 188 | return 0; | 188 | return 0; |
| 189 | w -= PAGE_SIZE; | 189 | w -= PAGE_SIZE; |
| 190 | } | 190 | } |
diff --git a/fs/nfsd/nfs3proc.c b/fs/nfsd/nfs3proc.c index 97d90d1c8608..1fc02dfdc5c4 100644 --- a/fs/nfsd/nfs3proc.c +++ b/fs/nfsd/nfs3proc.c | |||
| @@ -460,7 +460,7 @@ nfsd3_proc_readdirplus(struct svc_rqst *rqstp, struct nfsd3_readdirargs *argp, | |||
| 460 | __be32 nfserr; | 460 | __be32 nfserr; |
| 461 | int count = 0; | 461 | int count = 0; |
| 462 | loff_t offset; | 462 | loff_t offset; |
| 463 | int i; | 463 | struct page **p; |
| 464 | caddr_t page_addr = NULL; | 464 | caddr_t page_addr = NULL; |
| 465 | 465 | ||
| 466 | dprintk("nfsd: READDIR+(3) %s %d bytes at %d\n", | 466 | dprintk("nfsd: READDIR+(3) %s %d bytes at %d\n", |
| @@ -484,8 +484,8 @@ nfsd3_proc_readdirplus(struct svc_rqst *rqstp, struct nfsd3_readdirargs *argp, | |||
| 484 | &resp->common, | 484 | &resp->common, |
| 485 | nfs3svc_encode_entry_plus); | 485 | nfs3svc_encode_entry_plus); |
| 486 | memcpy(resp->verf, argp->verf, 8); | 486 | memcpy(resp->verf, argp->verf, 8); |
| 487 | for (i=1; i<rqstp->rq_resused ; i++) { | 487 | for (p = rqstp->rq_respages + 1; p < rqstp->rq_next_page; p++) { |
| 488 | page_addr = page_address(rqstp->rq_respages[i]); | 488 | page_addr = page_address(*p); |
| 489 | 489 | ||
| 490 | if (((caddr_t)resp->buffer >= page_addr) && | 490 | if (((caddr_t)resp->buffer >= page_addr) && |
| 491 | ((caddr_t)resp->buffer < page_addr + PAGE_SIZE)) { | 491 | ((caddr_t)resp->buffer < page_addr + PAGE_SIZE)) { |
diff --git a/fs/nfsd/nfs3xdr.c b/fs/nfsd/nfs3xdr.c index 2b8618de6c27..324c0baf7cda 100644 --- a/fs/nfsd/nfs3xdr.c +++ b/fs/nfsd/nfs3xdr.c | |||
| @@ -325,7 +325,7 @@ nfs3svc_decode_readargs(struct svc_rqst *rqstp, __be32 *p, | |||
| 325 | struct nfsd3_readargs *args) | 325 | struct nfsd3_readargs *args) |
| 326 | { | 326 | { |
| 327 | unsigned int len; | 327 | unsigned int len; |
| 328 | int v,pn; | 328 | int v; |
| 329 | u32 max_blocksize = svc_max_payload(rqstp); | 329 | u32 max_blocksize = svc_max_payload(rqstp); |
| 330 | 330 | ||
| 331 | if (!(p = decode_fh(p, &args->fh))) | 331 | if (!(p = decode_fh(p, &args->fh))) |
| @@ -340,8 +340,9 @@ nfs3svc_decode_readargs(struct svc_rqst *rqstp, __be32 *p, | |||
| 340 | /* set up the kvec */ | 340 | /* set up the kvec */ |
| 341 | v=0; | 341 | v=0; |
| 342 | while (len > 0) { | 342 | while (len > 0) { |
| 343 | pn = rqstp->rq_resused++; | 343 | struct page *p = *(rqstp->rq_next_page++); |
| 344 | rqstp->rq_vec[v].iov_base = page_address(rqstp->rq_respages[pn]); | 344 | |
| 345 | rqstp->rq_vec[v].iov_base = page_address(p); | ||
| 345 | rqstp->rq_vec[v].iov_len = len < PAGE_SIZE? len : PAGE_SIZE; | 346 | rqstp->rq_vec[v].iov_len = len < PAGE_SIZE? len : PAGE_SIZE; |
| 346 | len -= rqstp->rq_vec[v].iov_len; | 347 | len -= rqstp->rq_vec[v].iov_len; |
| 347 | v++; | 348 | v++; |
| @@ -463,8 +464,7 @@ nfs3svc_decode_symlinkargs(struct svc_rqst *rqstp, __be32 *p, | |||
| 463 | len = ntohl(*p++); | 464 | len = ntohl(*p++); |
| 464 | if (len == 0 || len > NFS3_MAXPATHLEN || len >= PAGE_SIZE) | 465 | if (len == 0 || len > NFS3_MAXPATHLEN || len >= PAGE_SIZE) |
| 465 | return 0; | 466 | return 0; |
| 466 | args->tname = new = | 467 | args->tname = new = page_address(*(rqstp->rq_next_page++)); |
| 467 | page_address(rqstp->rq_respages[rqstp->rq_resused++]); | ||
| 468 | args->tlen = len; | 468 | args->tlen = len; |
| 469 | /* first copy and check from the first page */ | 469 | /* first copy and check from the first page */ |
| 470 | old = (char*)p; | 470 | old = (char*)p; |
| @@ -535,8 +535,7 @@ nfs3svc_decode_readlinkargs(struct svc_rqst *rqstp, __be32 *p, | |||
| 535 | { | 535 | { |
| 536 | if (!(p = decode_fh(p, &args->fh))) | 536 | if (!(p = decode_fh(p, &args->fh))) |
| 537 | return 0; | 537 | return 0; |
| 538 | args->buffer = | 538 | args->buffer = page_address(*(rqstp->rq_next_page++)); |
| 539 | page_address(rqstp->rq_respages[rqstp->rq_resused++]); | ||
| 540 | 539 | ||
| 541 | return xdr_argsize_check(rqstp, p); | 540 | return xdr_argsize_check(rqstp, p); |
| 542 | } | 541 | } |
| @@ -567,8 +566,7 @@ nfs3svc_decode_readdirargs(struct svc_rqst *rqstp, __be32 *p, | |||
| 567 | if (args->count > PAGE_SIZE) | 566 | if (args->count > PAGE_SIZE) |
| 568 | args->count = PAGE_SIZE; | 567 | args->count = PAGE_SIZE; |
| 569 | 568 | ||
| 570 | args->buffer = | 569 | args->buffer = page_address(*(rqstp->rq_next_page++)); |
| 571 | page_address(rqstp->rq_respages[rqstp->rq_resused++]); | ||
| 572 | 570 | ||
| 573 | return xdr_argsize_check(rqstp, p); | 571 | return xdr_argsize_check(rqstp, p); |
| 574 | } | 572 | } |
| @@ -577,7 +575,7 @@ int | |||
| 577 | nfs3svc_decode_readdirplusargs(struct svc_rqst *rqstp, __be32 *p, | 575 | nfs3svc_decode_readdirplusargs(struct svc_rqst *rqstp, __be32 *p, |
| 578 | struct nfsd3_readdirargs *args) | 576 | struct nfsd3_readdirargs *args) |
| 579 | { | 577 | { |
| 580 | int len, pn; | 578 | int len; |
| 581 | u32 max_blocksize = svc_max_payload(rqstp); | 579 | u32 max_blocksize = svc_max_payload(rqstp); |
| 582 | 580 | ||
| 583 | if (!(p = decode_fh(p, &args->fh))) | 581 | if (!(p = decode_fh(p, &args->fh))) |
| @@ -592,9 +590,9 @@ nfs3svc_decode_readdirplusargs(struct svc_rqst *rqstp, __be32 *p, | |||
| 592 | args->count = len; | 590 | args->count = len; |
| 593 | 591 | ||
| 594 | while (len > 0) { | 592 | while (len > 0) { |
| 595 | pn = rqstp->rq_resused++; | 593 | struct page *p = *(rqstp->rq_next_page++); |
| 596 | if (!args->buffer) | 594 | if (!args->buffer) |
| 597 | args->buffer = page_address(rqstp->rq_respages[pn]); | 595 | args->buffer = page_address(p); |
| 598 | len -= PAGE_SIZE; | 596 | len -= PAGE_SIZE; |
| 599 | } | 597 | } |
| 600 | 598 | ||
| @@ -880,7 +878,7 @@ encode_entry(struct readdir_cd *ccd, const char *name, int namlen, | |||
| 880 | common); | 878 | common); |
| 881 | __be32 *p = cd->buffer; | 879 | __be32 *p = cd->buffer; |
| 882 | caddr_t curr_page_addr = NULL; | 880 | caddr_t curr_page_addr = NULL; |
| 883 | int pn; /* current page number */ | 881 | struct page ** page; |
| 884 | int slen; /* string (name) length */ | 882 | int slen; /* string (name) length */ |
| 885 | int elen; /* estimated entry length in words */ | 883 | int elen; /* estimated entry length in words */ |
| 886 | int num_entry_words = 0; /* actual number of words */ | 884 | int num_entry_words = 0; /* actual number of words */ |
| @@ -917,8 +915,9 @@ encode_entry(struct readdir_cd *ccd, const char *name, int namlen, | |||
| 917 | } | 915 | } |
| 918 | 916 | ||
| 919 | /* determine which page in rq_respages[] we are currently filling */ | 917 | /* determine which page in rq_respages[] we are currently filling */ |
| 920 | for (pn=1; pn < cd->rqstp->rq_resused; pn++) { | 918 | for (page = cd->rqstp->rq_respages + 1; |
| 921 | curr_page_addr = page_address(cd->rqstp->rq_respages[pn]); | 919 | page < cd->rqstp->rq_next_page; page++) { |
| 920 | curr_page_addr = page_address(*page); | ||
| 922 | 921 | ||
| 923 | if (((caddr_t)cd->buffer >= curr_page_addr) && | 922 | if (((caddr_t)cd->buffer >= curr_page_addr) && |
| 924 | ((caddr_t)cd->buffer < curr_page_addr + PAGE_SIZE)) | 923 | ((caddr_t)cd->buffer < curr_page_addr + PAGE_SIZE)) |
| @@ -933,14 +932,14 @@ encode_entry(struct readdir_cd *ccd, const char *name, int namlen, | |||
| 933 | if (plus) | 932 | if (plus) |
| 934 | p = encode_entryplus_baggage(cd, p, name, namlen); | 933 | p = encode_entryplus_baggage(cd, p, name, namlen); |
| 935 | num_entry_words = p - cd->buffer; | 934 | num_entry_words = p - cd->buffer; |
| 936 | } else if (cd->rqstp->rq_respages[pn | ||
