summaryrefslogtreecommitdiffstats
path: root/cli
diff options
context:
space:
mode:
authorMeghana Madhusudhan <mmadhusu@redhat.com>2015-04-20 10:41:47 +0530
committerKaleb KEITHLEY <kkeithle@redhat.com>2015-05-06 05:33:40 -0700
commit403a74da5d3287489829c629d42643b8b320ee62 (patch)
tree1e4a83647dee5a1fd72a496804375e1c6554aa81 /cli
parent96871c7ddc39cdb502ebfb6d975fe8859fc3e0e9 (diff)
NFS-Ganesha : Locking global options file
Global option gluster features.ganesha enable writes into the global 'option' file. The snapshot feature also writes into the same file. To handle concurrent multiple transactions correctly, a new lock has to be introduced on this file. Every operation using this file needs to contest for the new lock type. Change-Id: Ia8a324d2a466717b39f2700599edd9f345b939a9 BUG: 1200254 Signed-off-by: Meghana Madhusudhan <mmadhusu@redhat.com> Reviewed-on: http://review.gluster.org/10130 Reviewed-by: Avra Sengupta <asengupt@redhat.com> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: soumya k <skoduri@redhat.com> Tested-by: NetBSD Build System Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Diffstat (limited to 'cli')
-rw-r--r--cli/src/cli-cmd-parser.c25
-rw-r--r--cli/src/cli-rpc-ops.c4
2 files changed, 27 insertions, 2 deletions
diff --git a/cli/src/cli-cmd-parser.c b/cli/src/cli-cmd-parser.c
index d70f6ee1e30..5437b38d3a6 100644
--- a/cli/src/cli-cmd-parser.c
+++ b/cli/src/cli-cmd-parser.c
@@ -903,6 +903,20 @@ cli_cmd_ganesha_parse (struct cli_state *state,
goto out;
}
+ ret = dict_set_str (dict, "globalname", "All");
+ if (ret) {
+ gf_log (THIS->name, GF_LOG_ERROR, "dict set on global"
+ " key failed.");
+ goto out;
+ }
+
+ ret = dict_set_int32 (dict, "hold_global_locks", _gf_true);
+ if (ret) {
+ gf_log (THIS->name, GF_LOG_ERROR, "dict set on global key "
+ "failed.");
+ goto out;
+ }
+
*options = dict;
out:
if (ret)
@@ -4373,6 +4387,17 @@ cli_snap_config_limit_parse (const char **words, dict_t *dict,
goto out;
}
+ ret = dict_set_dynstr_with_alloc (dict, "globalname", "All");
+ if (ret) {
+ gf_log ("cli", GF_LOG_ERROR, "Could not set global key");
+ goto out;
+ }
+ ret = dict_set_int32 (dict, "hold_global_locks", _gf_true);
+ if (ret) {
+ gf_log ("cli", GF_LOG_ERROR, "Could not set global locks");
+ goto out;
+ }
+
out:
return ret;
}
diff --git a/cli/src/cli-rpc-ops.c b/cli/src/cli-rpc-ops.c
index e45baa062a1..5504515fd5e 100644
--- a/cli/src/cli-rpc-ops.c
+++ b/cli/src/cli-rpc-ops.c
@@ -1877,9 +1877,9 @@ gf_cli_ganesha_cbk (struct rpc_req *req, struct iovec *iov,
if (rsp.op_ret) {
if (strcmp (rsp.op_errstr, ""))
- cli_err ("ganesha enable: failed: %s", rsp.op_errstr);
+ cli_err ("nfs-ganesha: failed: %s", rsp.op_errstr);
else
- cli_err ("ganesha enable: failed");
+ cli_err ("nfs-ganesha: failed");
}
else {