diff options
author | Rajesh Amaravathi <rajesh@redhat.com> | 2012-04-12 14:49:44 +0530 |
---|---|---|
committer | Vijay Bellur <vijay@gluster.com> | 2012-05-18 05:53:10 -0700 |
commit | 7914df6c6ab6d7d3905b26c1dbc5ac07d79ef10f (patch) | |
tree | f7402ef4afe781cdc6409e0518618b17ae98a7cd /xlators/nfs/server/src/nfs-mem-types.h | |
parent | 27f4cc44140260516efa5a226b9f49b761b6b559 (diff) |
nfs/nlm: procedures for PC clients
* This change introduces four NLMv4 procedures:
NM_LOCK, SHARE, UNSHARE and FREE_ALL.
These are used by PC clients (windows/dos) to control access
to files.
1. NM_LOCK: this lock is not monitored by statd.
2. SHARE: A share reservation is a lock on the whole file
that is taken whenever a file is opened on windows clients.
This has ACCESS (N, R, W, RW) and DENY MODE (N, R, W, RW).
ACCESS: mode of access requested by the client;
DENY MODE: what the requesting client wants to
deny other clients.
3. UNSHARE: remove a share reservation obtained by SHARE.
Called while closing a file.
4. FREE_ALL: remove all share reservations and locks,
both monitored and unmonitored, of the calling client.
* lock and nm_lock use a common function with only
a flag conveying whether or not to monitor a lock.
* NOTES:
1. SHARE reservations are not STACK_WIND'd to subsequent xlators.
These are maintained in-memory in the nfs xlator.
2. Consequently, for SHARE reservations to work effectively,
all PC clients *must* mount from the same gNfs server.
Not doing so will result in different servers maintaining
separate SHARE reservations which will not be enforced
for obvious reasons.
Change-Id: Id4f22670a94ed58691a6a7f4c80aa8c11421a277
BUG: 800287
Signed-off-by: Rajesh Amaravathi <rajesh@redhat.com>
Reviewed-on: http://review.gluster.com/3356
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
Diffstat (limited to 'xlators/nfs/server/src/nfs-mem-types.h')
-rw-r--r-- | xlators/nfs/server/src/nfs-mem-types.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/xlators/nfs/server/src/nfs-mem-types.h b/xlators/nfs/server/src/nfs-mem-types.h index e2dae4a34..1a3b25281 100644 --- a/xlators/nfs/server/src/nfs-mem-types.h +++ b/xlators/nfs/server/src/nfs-mem-types.h @@ -47,6 +47,7 @@ enum gf_nfs_mem_types_ { gf_nfs_mt_nlm4_cm, gf_nfs_mt_nlm4_fde, gf_nfs_mt_nlm4_nlmclnt, + gf_nfs_mt_nlm4_share, gf_nfs_mt_end }; #endif |