summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorNeil Brown <neilb@cse.unsw.edu.au>2004-06-26 20:58:30 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-06-26 20:58:30 -0700
commit1ad75126cc25493618d3d96afb839601c3ff235f (patch)
treedddedbbb8c6323d6db173f03a6060057d1be90a7 /include/linux
parent7a9eaffa9ae8beab1127636546367159feda5820 (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.h2
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
/*