diff options
| author | Andrew Morton <akpm@osdl.org> | 2004-02-26 06:49:31 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-02-26 06:49:31 -0800 |
| commit | b0ac617ec5ca602fe558eac90756f1a2f2001453 (patch) | |
| tree | e2fbdb28fe1dd9356169c139319ead60de0e2438 /include/linux/nfsd | |
| parent | 0dff23e560fc2df6756dcef5c475c30c82152189 (diff) | |
[PATCH] kNFSd: Implement the nfsv4 RELEASE_LOCKOWNER operation.
From: NeilBrown <neilb@cse.unsw.edu.au>
Implement the nfsv4 RELEASE_LOCKOWNER operation.
Diffstat (limited to 'include/linux/nfsd')
| -rw-r--r-- | include/linux/nfsd/nfsd.h | 1 | ||||
| -rw-r--r-- | include/linux/nfsd/xdr4.h | 8 |
2 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/nfsd/nfsd.h b/include/linux/nfsd/nfsd.h index 20b1f4a3fb10..4b0442923715 100644 --- a/include/linux/nfsd/nfsd.h +++ b/include/linux/nfsd/nfsd.h @@ -194,6 +194,7 @@ void nfsd_lockd_shutdown(void); #define nfserr_attrnotsupp __constant_htonl(NFSERR_ATTRNOTSUPP) #define nfserr_bad_xdr __constant_htonl(NFSERR_BAD_XDR) #define nfserr_openmode __constant_htonl(NFSERR_OPENMODE) +#define nfserr_locks_held __constant_htonl(NFSERR_LOCKS_HELD) /* error codes for internal use */ /* if a request fails due to kmalloc failure, it gets dropped. diff --git a/include/linux/nfsd/xdr4.h b/include/linux/nfsd/xdr4.h index 4e275cea93b5..df35cb397dc6 100644 --- a/include/linux/nfsd/xdr4.h +++ b/include/linux/nfsd/xdr4.h @@ -263,6 +263,10 @@ struct nfsd4_readdir { u32 * offset; }; +struct nfsd4_release_lockowner { + clientid_t rl_clientid; + struct xdr_netobj rl_owner; +}; struct nfsd4_readlink { struct svc_rqst *rl_rqstp; /* request */ struct svc_fh * rl_fhp; /* request */ @@ -359,6 +363,7 @@ struct nfsd4_op { struct nfsd4_setclientid_confirm setclientid_confirm; struct nfsd4_verify verify; struct nfsd4_write write; + struct nfsd4_release_lockowner release_lockowner; } u; struct nfs4_replay * replay; }; @@ -441,6 +446,9 @@ extern int nfsd4_lockt(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_lockt *lockt); extern int nfsd4_locku(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_locku *locku); +extern int +nfsd4_release_lockowner(struct svc_rqst *rqstp, + struct nfsd4_release_lockowner *rlockowner); #endif /* |
