diff options
| author | Neil Brown <neilb@cse.unsw.edu.au> | 2004-06-26 20:58:30 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-06-26 20:58:30 -0700 |
| commit | 1ad75126cc25493618d3d96afb839601c3ff235f (patch) | |
| tree | dddedbbb8c6323d6db173f03a6060057d1be90a7 /include/linux | |
| parent | 7a9eaffa9ae8beab1127636546367159feda5820 (diff) | |
[PATCH] knfsd: improve cleaning up of nfsd4 requests
Currently nfs4_arg->to_free keeps a list of void ptrs on which kfree is called
when freeing the nfs4_arg. This allows us to do cleanup on e.g. xdr decode
failures. To allow more complicated objects to be freed (in particular,
acls), we add a "void (*release)(void *)" to allow us to request something
other than kfree be called when freeing.
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/nfsd/xdr4.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/nfsd/xdr4.h b/include/linux/nfsd/xdr4.h index df35cb397dc6..9201a4763d17 100644 --- a/include/linux/nfsd/xdr4.h +++ b/include/linux/nfsd/xdr4.h @@ -378,6 +378,7 @@ struct nfsd4_compoundargs { u32 * tmpp; struct tmpbuf { struct tmpbuf *next; + void (*release)(const void *); void *buf; } *to_free; @@ -449,6 +450,7 @@ extern int nfsd4_locku(struct svc_rqst *rqstp, struct svc_fh *current_fh, extern int nfsd4_release_lockowner(struct svc_rqst *rqstp, struct nfsd4_release_lockowner *rlockowner); +extern void nfsd4_release_compoundargs(struct nfsd4_compoundargs *); #endif /* |
