diff options
author | vmallika <vmallika@redhat.com> | 2015-12-03 14:55:36 +0530 |
---|---|---|
committer | Atin Mukherjee <amukherj@redhat.com> | 2015-12-08 23:25:25 -0800 |
commit | f18432dde90fbea02ff656eecc916e8b04e0d516 (patch) | |
tree | 6bdbf0581410b6089a125d801be86f54c189ce54 /xlators/mgmt/glusterd/src | |
parent | 2142614f385352903d0cdb67657f2e639b79f72c (diff) |
glusterd/quota: quota-version conflict in export/import volinfo
This is a backport of http://review.gluster.org/#/c/12865/
When exporting/importing voinfo during handshake,
quota conf and quota xattr version were using same key
'quota-version' and updated wrong values when importing
quota version values.
> Change-Id: If939d6f5bc4851d4114963877be72dda21834f0f
> BUG: 1287996
> Signed-off-by: vmallika <vmallika@redhat.com>
Change-Id: Ic234d9e496f1372789112a0b82ba5cf34014de64
BUG: 1288052
Signed-off-by: vmallika <vmallika@redhat.com>
Reviewed-on: http://review.gluster.org/12872
Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
Diffstat (limited to 'xlators/mgmt/glusterd/src')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-quota.c | 6 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-store.c | 4 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.c | 9 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volgen.c | 2 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd.h | 2 |
5 files changed, 12 insertions, 11 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-quota.c b/xlators/mgmt/glusterd/src/glusterd-quota.c index 1830f0e8832..6495aa46d30 100644 --- a/xlators/mgmt/glusterd/src/glusterd-quota.c +++ b/xlators/mgmt/glusterd/src/glusterd-quota.c @@ -1504,12 +1504,12 @@ glusterd_op_quota (dict_t *dict, char **op_errstr, dict_t *rsp_dict) if (GF_QUOTA_OPTION_TYPE_ENABLE == type) - volinfo->quota_version++; + volinfo->quota_xattr_version++; ret = glusterd_store_volinfo (volinfo, GLUSTERD_VOLINFO_VER_AC_INCREMENT); if (ret) { if (GF_QUOTA_OPTION_TYPE_ENABLE == type) - volinfo->quota_version--; + volinfo->quota_xattr_version--; goto out; } @@ -1520,7 +1520,7 @@ glusterd_op_quota (dict_t *dict, char **op_errstr, dict_t *rsp_dict) "volfiles"); if (GF_QUOTA_OPTION_TYPE_ENABLE == type) { /* rollback volinfo */ - volinfo->quota_version--; + volinfo->quota_xattr_version--; ret = glusterd_store_volinfo (volinfo, GLUSTERD_VOLINFO_VER_AC_INCREMENT); } diff --git a/xlators/mgmt/glusterd/src/glusterd-store.c b/xlators/mgmt/glusterd/src/glusterd-store.c index 73d416b384e..2c9ab006d3e 100644 --- a/xlators/mgmt/glusterd/src/glusterd-store.c +++ b/xlators/mgmt/glusterd/src/glusterd-store.c @@ -1023,7 +1023,7 @@ glusterd_volume_exclude_options_write (int fd, glusterd_volinfo_t *volinfo) goto out; } - snprintf (buf, sizeof (buf), "%d", volinfo->quota_version); + snprintf (buf, sizeof (buf), "%d", volinfo->quota_xattr_version); ret = gf_store_save_value (fd, GLUSTERD_STORE_KEY_VOL_QUOTA_VERSION, buf); if (ret) @@ -2691,7 +2691,7 @@ glusterd_store_update_volinfo (glusterd_volinfo_t *volinfo) volinfo->tier_info.cold_type = atoi (value); } else if (!strncmp (key, GLUSTERD_STORE_KEY_VOL_QUOTA_VERSION, strlen (GLUSTERD_STORE_KEY_VOL_QUOTA_VERSION))) { - volinfo->quota_version = atoi (value); + volinfo->quota_xattr_version = atoi (value); } else { if (is_key_glusterd_hooks_friendly (key)) { diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index 5dde7b711a7..ead66896993 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -2504,8 +2504,8 @@ glusterd_add_volume_to_dict (glusterd_volinfo_t *volinfo, ret = dict_set_int32 (dict, key, volinfo->caps); memset (key, 0, sizeof (key)); - snprintf (key, sizeof (key), "%s%d.quota-version", prefix, count); - ret = dict_set_int32 (dict, key, volinfo->quota_version); + snprintf (key, sizeof (key), "%s%d.quota-xattr-version", prefix, count); + ret = dict_set_int32 (dict, key, volinfo->quota_xattr_version); out: GF_FREE (volume_id_str); GF_FREE (rebalance_id_str); @@ -3597,9 +3597,10 @@ glusterd_import_volinfo (dict_t *peer_data, int count, ret = dict_get_int32 (peer_data, key, &new_volinfo->caps); memset (key, 0, sizeof (key)); - snprintf (key, sizeof (key), "%s%d.quota_version", prefix, count); + snprintf (key, sizeof (key), "%s%d.quota-xattr-version", prefix, count); /*This is not present in older glusterfs versions, so ignore ret value*/ - ret = dict_get_int32 (peer_data, key, &new_volinfo->quota_version); + ret = dict_get_int32 (peer_data, key, + &new_volinfo->quota_xattr_version); ret = glusterd_import_bricks (peer_data, count, new_volinfo, prefix); if (ret) diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c index 5034b746ea1..0bad4bd144f 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.c +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c @@ -1886,7 +1886,7 @@ brick_graph_add_marker (volgen_graph_t *graph, glusterd_volinfo_t *volinfo, if (ret) goto out; - snprintf (buf, sizeof (buf), "%d", volinfo->quota_version); + snprintf (buf, sizeof (buf), "%d", volinfo->quota_xattr_version); ret = xlator_set_option (xl, "quota-version", buf); if (ret) goto out; diff --git a/xlators/mgmt/glusterd/src/glusterd.h b/xlators/mgmt/glusterd/src/glusterd.h index a51320ffaaf..1e573f8c5ee 100644 --- a/xlators/mgmt/glusterd/src/glusterd.h +++ b/xlators/mgmt/glusterd/src/glusterd.h @@ -433,7 +433,7 @@ struct glusterd_volinfo_ { gd_quorum_status_t quorum_status; glusterd_snapdsvc_t snapd; - int32_t quota_version; + int32_t quota_xattr_version; }; typedef enum gd_snap_status_ { |