diff options
author | Meghana Madhusudhan <mmadhusu@redhat.com> | 2015-04-20 10:41:47 +0530 |
---|---|---|
committer | Kaleb KEITHLEY <kkeithle@redhat.com> | 2015-05-06 05:33:40 -0700 |
commit | 403a74da5d3287489829c629d42643b8b320ee62 (patch) | |
tree | 1e4a83647dee5a1fd72a496804375e1c6554aa81 /cli/src | |
parent | 96871c7ddc39cdb502ebfb6d975fe8859fc3e0e9 (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/src')
-rw-r--r-- | cli/src/cli-cmd-parser.c | 25 | ||||
-rw-r--r-- | cli/src/cli-rpc-ops.c | 4 |
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 { |