From ebb5c6cc1e0d47513edb851128e424e747bb9166 Mon Sep 17 00:00:00 2001 From: Krishnan Parthasarathi Date: Wed, 21 Mar 2012 12:39:13 +0530 Subject: glusterd: Disabled self-heal on clear-locks internal mount - Also, changed afr_get_xattr_clrlk_cbk to use dict_set_dynstr for clear-lock summary. Earlier, it was relying on 'str' passed from xlators below. Change-Id: I175f4542e6ef2c859c4811eecb9d8c5a7d25a283 BUG: 800779 Signed-off-by: Krishnan Parthasarathi Reviewed-on: http://review.gluster.com/2992 Tested-by: Gluster Build System Reviewed-by: Amar Tumballi Reviewed-by: Anand Avati --- xlators/cluster/afr/src/afr-inode-read.c | 10 +++++----- xlators/mgmt/glusterd/src/glusterd-volume-ops.c | 8 ++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/xlators/cluster/afr/src/afr-inode-read.c b/xlators/cluster/afr/src/afr-inode-read.c index 6c837c3371e..41ffcb9138a 100644 --- a/xlators/cluster/afr/src/afr-inode-read.c +++ b/xlators/cluster/afr/src/afr-inode-read.c @@ -656,6 +656,8 @@ afr_getxattr_clrlk_cbk (call_frame_t *frame, void *cookie, LOCK (&frame->lock); { callcnt = --local->call_count; + if (op_ret == -1) + local->child_errno[cky] = op_errno; if (!local->dict) local->dict = dict_new (); @@ -664,14 +666,12 @@ afr_getxattr_clrlk_cbk (call_frame_t *frame, void *cookie, &tmp_report); if (ret) goto unlock; - ret = dict_set_str (local->dict, - children[cky]->name, - tmp_report); + ret = dict_set_dynstr (local->dict, + children[cky]->name, + gf_strdup (tmp_report)); if (ret) goto unlock; } - if (op_ret == -1) - local->child_errno[cky] = op_errno; } unlock: UNLOCK (&frame->lock); diff --git a/xlators/mgmt/glusterd/src/glusterd-volume-ops.c b/xlators/mgmt/glusterd/src/glusterd-volume-ops.c index b902d30635f..0e66b5052b5 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volume-ops.c +++ b/xlators/mgmt/glusterd/src/glusterd-volume-ops.c @@ -1671,6 +1671,9 @@ glusterd_clearlocks_mount (glusterd_volinfo_t *volinfo, char **xl_opts, glusterd_conf_t *priv = NULL; runner_t runner = {0,}; char client_volfpath[PATH_MAX] = {0,}; + char self_heal_opts[3][1024] = {"*replicate*.data-self-heal=off", + "*replicate*.metadata-self-heal=off", + "*replicate*.entry-self-heal=off"}; priv = THIS->private; @@ -1690,6 +1693,11 @@ glusterd_clearlocks_mount (glusterd_volinfo_t *volinfo, char **xl_opts, runner_argprintf (&runner, "%s", xl_opts[i]); } + for (i = 0; i < 3; i++) { + runner_add_args (&runner, "--xlator-option", + self_heal_opts[i], NULL); + } + runner_argprintf (&runner, "%s", mntpt); ret = runner_run (&runner); if (ret) { -- cgit