diff options
author | J. Bruce Fields <bfields@redhat.com> | 2011-07-16 17:15:10 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2011-07-18 09:38:02 -0400 |
commit | 3e98abffd1665b884a322aedcd528577842f762f (patch) | |
tree | 3f94883dd56081c17e3bbfadbe196eb5cb2a7595 /fs/nfsd/nfs4xdr.c | |
parent | ab1350b2b3c1dd2e465a6abdda608d8c44facfb8 (diff) |
nfsd4: call nfsd4_release_compoundargs from pc_release
This simplifies cleanup a bit.
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/nfs4xdr.c')
-rw-r--r-- | fs/nfsd/nfs4xdr.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c index a8d83bd5c1d5..c43f56021501 100644 --- a/fs/nfsd/nfs4xdr.c +++ b/fs/nfsd/nfs4xdr.c | |||
@@ -3428,8 +3428,11 @@ nfs4svc_encode_voidres(struct svc_rqst *rqstp, __be32 *p, void *dummy) | |||
3428 | return xdr_ressize_check(rqstp, p); | 3428 | return xdr_ressize_check(rqstp, p); |
3429 | } | 3429 | } |
3430 | 3430 | ||
3431 | void nfsd4_release_compoundargs(struct nfsd4_compoundargs *args) | 3431 | int nfsd4_release_compoundargs(void *rq, __be32 *p, void *resp) |
3432 | { | 3432 | { |
3433 | struct svc_rqst *rqstp = rq; | ||
3434 | struct nfsd4_compoundargs *args = rqstp->rq_argp; | ||
3435 | |||
3433 | if (args->ops != args->iops) { | 3436 | if (args->ops != args->iops) { |
3434 | kfree(args->ops); | 3437 | kfree(args->ops); |
3435 | args->ops = args->iops; | 3438 | args->ops = args->iops; |
@@ -3442,13 +3445,12 @@ void nfsd4_release_compoundargs(struct nfsd4_compoundargs *args) | |||
3442 | tb->release(tb->buf); | 3445 | tb->release(tb->buf); |
3443 | kfree(tb); | 3446 | kfree(tb); |
3444 | } | 3447 | } |
3448 | return 1; | ||
3445 | } | 3449 | } |
3446 | 3450 | ||
3447 | int | 3451 | int |
3448 | nfs4svc_decode_compoundargs(struct svc_rqst *rqstp, __be32 *p, struct nfsd4_compoundargs *args) | 3452 | nfs4svc_decode_compoundargs(struct svc_rqst *rqstp, __be32 *p, struct nfsd4_compoundargs *args) |
3449 | { | 3453 | { |
3450 | __be32 status; | ||
3451 | |||
3452 | args->p = p; | 3454 | args->p = p; |
3453 | args->end = rqstp->rq_arg.head[0].iov_base + rqstp->rq_arg.head[0].iov_len; | 3455 | args->end = rqstp->rq_arg.head[0].iov_base + rqstp->rq_arg.head[0].iov_len; |
3454 | args->pagelist = rqstp->rq_arg.pages; | 3456 | args->pagelist = rqstp->rq_arg.pages; |
@@ -3458,11 +3460,7 @@ nfs4svc_decode_compoundargs(struct svc_rqst *rqstp, __be32 *p, struct nfsd4_comp | |||
3458 | args->ops = args->iops; | 3460 | args->ops = args->iops; |
3459 | args->rqstp = rqstp; | 3461 | args->rqstp = rqstp; |
3460 | 3462 | ||
3461 | status = nfsd4_decode_compound(args); | 3463 | return !nfsd4_decode_compound(args); |
3462 | if (status) { | ||
3463 | nfsd4_release_compoundargs(args); | ||
3464 | } | ||
3465 | return !status; | ||
3466 | } | 3464 | } |
3467 | 3465 | ||
3468 | int | 3466 | int |