diff options
-rw-r--r-- | xlators/cluster/afr/src/afr-inode-read.c | 10 | ||||
-rw-r--r-- | 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 6c837c337..41ffcb913 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 b902d3063..0e66b5052 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) { |