summaryrefslogtreecommitdiff
path: root/include/linux/nfsd
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2004-02-26 06:49:31 -0800
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-02-26 06:49:31 -0800
commitb0ac617ec5ca602fe558eac90756f1a2f2001453 (patch)
treee2fbdb28fe1dd9356169c139319ead60de0e2438 /include/linux/nfsd
parent0dff23e560fc2df6756dcef5c475c30c82152189 (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.h1
-rw-r--r--include/linux/nfsd/xdr4.h8
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
/*