summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt/glusterd/src/glusterd-op-sm.c
diff options
context:
space:
mode:
authorAtin Mukherjee <amukherj@redhat.com>2015-09-14 17:09:29 +0530
committerAtin Mukherjee <amukherj@redhat.com>2015-10-27 23:01:02 -0700
commitc3ed484af54e32c1ef2300cda652604d75dc9d20 (patch)
treedae6e8516ce1fa2039642838274296b6f9e71d12 /xlators/mgmt/glusterd/src/glusterd-op-sm.c
parent17e95cb81776650a2f68be00298c4f85b41e4242 (diff)
glusterd: call glusterd_store_volinfo in bump up op-version
After an upgrade, op-version is expected to be updated through gluster volume set. If the new version introduces any feature which changes volinfo structure without storing the default values of these new options would result into cksum issues. Change-Id: I57b4667f3403839811735bf66bef29e5200a9241 BUG: 1262805 Signed-off-by: Atin Mukherjee <amukherj@redhat.com> Reviewed-on: http://review.gluster.org/12171 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com> Reviewed-by: Gaurav Kumar Garg <ggarg@redhat.com>
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-op-sm.c')
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-op-sm.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-op-sm.c b/xlators/mgmt/glusterd/src/glusterd-op-sm.c
index 3dfc50f8126..39c989fa53e 100644
--- a/xlators/mgmt/glusterd/src/glusterd-op-sm.c
+++ b/xlators/mgmt/glusterd/src/glusterd-op-sm.c
@@ -2203,6 +2203,7 @@ glusterd_op_set_all_volume_options (xlator_t *this, dict_t *dict,
char *next_version = NULL;
gf_boolean_t quorum_action = _gf_false;
uint32_t op_version = 0;
+ glusterd_volinfo_t *volinfo = NULL;
conf = this->private;
ret = dict_get_str (dict, "key1", &key);
@@ -2255,6 +2256,12 @@ glusterd_op_set_all_volume_options (xlator_t *this, dict_t *dict,
"Failed to store op-version.");
}
}
+ cds_list_for_each_entry (volinfo, &conf->volumes, vol_list) {
+ ret = glusterd_store_volinfo
+ (volinfo, GLUSTERD_VOLINFO_VER_AC_INCREMENT);
+ if (ret)
+ goto out;
+ }
/* No need to save cluster.op-version in conf->opts
*/
goto out;