diff options
author | Rajesh Amaravathi <rajesh@redhat.com> | 2012-04-02 11:56:21 +0530 |
---|---|---|
committer | Vijay Bellur <vijay@gluster.com> | 2012-04-05 05:10:40 -0700 |
commit | bd83e10deec2e7dcd289ca30d2a3de19e0d59c30 (patch) | |
tree | e1e8b851148f833f2d99302c41125826cf05302c | |
parent | 7d62749f14663ea6c0000a4aab2c32041cbb4e75 (diff) |
nfs/nlm: dummy actor for FREE_ALL procedure
NLM4_FREE_ALL rpc procedure has been provided nlm's
null procedure as actor to facilitate windows Nfs mounts.
NOTE: windows Nfs needs several other NLM procedures to work.
As a result, this patch only makes it possible to do a working
mount of a volume with "nolock" option in windows.
*Windows mount WITHOUT "nolock" option does NOT work as expected*
Change-Id: Ie163982497871312c5bb15f8c141fef460cadc34
BUG: 800287
Signed-off-by: Rajesh Amaravathi <rajesh@redhat.com>
Reviewed-on: http://review.gluster.com/3063
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Krishna Srinivas <krishna@gluster.com>
-rw-r--r-- | rpc/xdr/src/nlm4-xdr.h | 47 | ||||
-rw-r--r-- | xlators/nfs/server/src/nlm4.c | 46 |
2 files changed, 54 insertions, 39 deletions
diff --git a/rpc/xdr/src/nlm4-xdr.h b/rpc/xdr/src/nlm4-xdr.h index dd3e664bb..fcc0e51b3 100644 --- a/rpc/xdr/src/nlm4-xdr.h +++ b/rpc/xdr/src/nlm4-xdr.h @@ -170,28 +170,31 @@ struct nlm4_shareres { }; typedef struct nlm4_shareres nlm4_shareres; -#define NLM4_NULL 0 -#define NLM4_TEST 1 -#define NLM4_LOCK 2 -#define NLM4_CANCEL 3 -#define NLM4_UNLOCK 4 -#define NLM4_GRANTED 5 -#define NLM4_TEST_MSG 6 -#define NLM4_LOCK_MSG 7 -#define NLM4_CANCEL_MSG 8 -#define NLM4_UNLOCK_MSG 9 -#define NLM4_GRANTED_MSG 10 -#define NLM4_TEST_RES 11 -#define NLM4_LOCK_RES 12 -#define NLM4_CANCEL_RES 13 -#define NLM4_UNLOCK_RES 14 -#define NLM4_GRANTED_RES 15 -#define NLM4_SM_NOTIFY 16 -#define NLM4_SHARE 20 -#define NLM4_UNSHARE 21 -#define NLM4_NM_LOCK 22 -#define NLM4_FREE_ALL 23 -#define NLM4_PROC_COUNT 24 +#define NLM4_NULL 0 +#define NLM4_TEST 1 +#define NLM4_LOCK 2 +#define NLM4_CANCEL 3 +#define NLM4_UNLOCK 4 +#define NLM4_GRANTED 5 +#define NLM4_TEST_MSG 6 +#define NLM4_LOCK_MSG 7 +#define NLM4_CANCEL_MSG 8 +#define NLM4_UNLOCK_MSG 9 +#define NLM4_GRANTED_MSG 10 +#define NLM4_TEST_RES 11 +#define NLM4_LOCK_RES 12 +#define NLM4_CANCEL_RES 13 +#define NLM4_UNLOCK_RES 14 +#define NLM4_GRANTED_RES 15 +#define NLM4_SM_NOTIFY 16 +#define NLM4_SEVENTEEN 17 +#define NLM4_EIGHTEEN 18 +#define NLM4_NINETEEN 19 +#define NLM4_SHARE 20 +#define NLM4_UNSHARE 21 +#define NLM4_NM_LOCK 22 +#define NLM4_FREE_ALL 23 +#define NLM4_PROC_COUNT 24 /* the xdr functions */ diff --git a/xlators/nfs/server/src/nlm4.c b/xlators/nfs/server/src/nlm4.c index 03257806e..b0ab510ef 100644 --- a/xlators/nfs/server/src/nlm4.c +++ b/xlators/nfs/server/src/nlm4.c @@ -1709,23 +1709,35 @@ nlm4svc_sm_notify (struct nlm_sm_status *status) } rpcsvc_actor_t nlm4svc_actors[NLM4_PROC_COUNT] = { - {"NULL", NLM4_NULL, nlm4svc_null, NULL, NULL}, - {"TEST", NLM4_TEST, nlm4svc_test, NULL, NULL}, - {"LOCK", NLM4_LOCK, nlm4svc_lock, NULL, NULL}, - {"CANCEL", NLM4_CANCEL, nlm4svc_cancel, NULL, NULL}, - {"UNLOCK", NLM4_UNLOCK, nlm4svc_unlock, NULL, NULL}, - {"GRANTED", NLM4_GRANTED, NULL, NULL, NULL}, - {"TEST", NLM4_TEST_MSG, NULL, NULL, NULL}, - {"LOCK", NLM4_LOCK_MSG, NULL, NULL, NULL}, - {"CANCEL", NLM4_CANCEL_MSG, NULL, NULL, NULL}, - {"UNLOCK", NLM4_UNLOCK_MSG, NULL, NULL, NULL}, - {"GRANTED", NLM4_GRANTED_MSG, NULL, NULL, NULL}, - {"TEST", NLM4_TEST_RES, NULL, NULL, NULL}, - {"LOCK", NLM4_LOCK_RES, NULL, NULL, NULL}, - {"CANCEL", NLM4_CANCEL_RES, NULL, NULL, NULL}, - {"UNLOCK", NLM4_UNLOCK_RES, NULL, NULL, NULL}, - {"GRANTED", NLM4_GRANTED_RES, NULL, NULL, NULL}, - {"SM_NOTIFY", NLM4_SM_NOTIFY, NULL, NULL, NULL}, + /* 0 */ + {"NULL", NLM4_NULL, nlm4svc_null, NULL, NULL}, + {"TEST", NLM4_TEST, nlm4svc_test, NULL, NULL}, + {"LOCK", NLM4_LOCK, nlm4svc_lock, NULL, NULL}, + {"CANCEL", NLM4_CANCEL, nlm4svc_cancel, NULL, NULL}, + {"UNLOCK", NLM4_UNLOCK, nlm4svc_unlock, NULL, NULL}, + /* 5 */ + {"GRANTED", NLM4_GRANTED, NULL, NULL, NULL}, + {"TEST", NLM4_TEST_MSG, NULL, NULL, NULL}, + {"LOCK", NLM4_LOCK_MSG, NULL, NULL, NULL}, + {"CANCEL", NLM4_CANCEL_MSG, NULL, NULL, NULL}, + {"UNLOCK", NLM4_UNLOCK_MSG, NULL, NULL, NULL}, + /* 10 */ + {"GRANTED", NLM4_GRANTED_MSG, NULL, NULL, NULL}, + {"TEST", NLM4_TEST_RES, NULL, NULL, NULL}, + {"LOCK", NLM4_LOCK_RES, NULL, NULL, NULL}, + {"CANCEL", NLM4_CANCEL_RES, NULL, NULL, NULL}, + {"UNLOCK", NLM4_UNLOCK_RES, NULL, NULL, NULL}, + /* 15 ; 17,18,19 are dummy actors */ + {"GRANTED", NLM4_GRANTED_RES, NULL, NULL, NULL}, + {"SM_NOTIFY", NLM4_SM_NOTIFY, NULL, NULL, NULL}, + {"SEVENTEEN", NLM4_SEVENTEEN, NULL, NULL, NULL}, + {"EIGHTEEN", NLM4_EIGHTEEN, NULL, NULL, NULL}, + {"NINETEEN", NLM4_NINETEEN, NULL, NULL, NULL}, + /* 20 */ + {"SHARE", NLM4_SHARE, NULL, NULL, NULL}, + {"UNSHARE", NLM4_UNSHARE, NULL, NULL, NULL}, + {"NM_LOCK", NLM4_NM_LOCK, NULL, NULL, NULL}, + {"FREE_ALL", NLM4_FREE_ALL, nlm4svc_null, NULL, NULL}, }; rpcsvc_program_t nlm4prog = { |