diff options
author | Sanju Rakonde <srakonde@redhat.com> | 2019-12-25 21:56:32 +0530 |
---|---|---|
committer | MOHIT AGRAWAL <moagrawa@redhat.com> | 2020-01-01 14:15:02 +0000 |
commit | e40d0c399333e1ef62ff104b5cd35d8a5baa75f4 (patch) | |
tree | bfd58e17070c731f58e11aaf4122bc7b3eab354b /xlators/mgmt/glusterd/src/glusterd-utils.c | |
parent | 7555ebc629774b95a878678f8ab0946c3bcf2f32 (diff) |
glusterd: deafult options after volume reset
Problem: default option itransport.address-family is disappered
in volume info output after a volume reset.
Cause: with 3.8.0 onwards volume option transport.address-family
has default value, any volume which is created will have this
option set. So, volume info will show this in its output. But,
with reset volume, this option is not handled.
Solution: In glusterd_enable_default_options(), we should add this
option along with other default options. This function is called
by glusterd_options_reset() with volume reset command.
fixes: bz#1786478
Change-Id: I58f7aa24cf01f308c4efe6cae748cc3bc8b99b1d
Signed-off-by: Sanju Rakonde <srakonde@redhat.com>
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-utils.c')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index 4809e5f1658..fd3b3e9d382 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -12669,6 +12669,11 @@ glusterd_enable_default_options(glusterd_volinfo_t *volinfo, char *option) int ret = 0; xlator_t *this = NULL; glusterd_conf_t *conf = NULL; +#ifdef IPV6_DEFAULT + char *addr_family = "inet6"; +#else + char *addr_family = "inet"; +#endif this = THIS; GF_ASSERT(this); @@ -12730,6 +12735,24 @@ glusterd_enable_default_options(glusterd_volinfo_t *volinfo, char *option) } } } + + if (conf->op_version >= GD_OP_VERSION_3_9_0) { + if (!option || !strcmp("transport.address-family", option)) { + if (volinfo->transport_type == GF_TRANSPORT_TCP) { + ret = dict_set_dynstr_with_alloc( + volinfo->dict, "transport.address-family", addr_family); + if (ret) { + gf_msg(this->name, GF_LOG_ERROR, errno, + GD_MSG_DICT_SET_FAILED, + "failed to set transport." + "address-family on %s", + volinfo->volname); + goto out; + } + } + } + } + if (conf->op_version >= GD_OP_VERSION_7_0) { ret = dict_set_dynstr_with_alloc(volinfo->dict, "storage.fips-mode-rchecksum", "on"); |