summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRajesh Amaravathi <rajesh@redhat.com>2012-04-02 11:56:21 +0530
committerVijay Bellur <vijay@gluster.com>2012-04-05 05:10:40 -0700
commitbd83e10deec2e7dcd289ca30d2a3de19e0d59c30 (patch)
treee1e8b851148f833f2d99302c41125826cf05302c
parent7d62749f14663ea6c0000a4aab2c32041cbb4e75 (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.h47
-rw-r--r--xlators/nfs/server/src/nlm4.c46
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 = {