summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt/glusterd/src/glusterd-quota.c
diff options
context:
space:
mode:
authorSanoj Unnikrishnan <sunnikri@redhat.com>2017-01-18 15:56:00 +0530
committerAtin Mukherjee <amukherj@redhat.com>2017-01-19 05:29:24 -0800
commit89cf743118ab6554c7f210754e51c4921cbb60c7 (patch)
tree17e2699bb10cf4fdcb2e6da61ce3e95c2a566a87 /xlators/mgmt/glusterd/src/glusterd-quota.c
parent6f4811ca9331eee8c00861446f74ebe23626bbf8 (diff)
Fixes upgrade issue in quota.conf
When an op-version bump up is done the glusterd_store_quota_config upgrades the quota conf file, although overwriting the same later which leaves out all gfid entries. While this is warranted for enable opcode, for upgrade we need to retain gfids. So for upgrade opcode, we return once the upgrade is done. Change-Id: I2b38c6022d74b4a14dc07432651a51cc39ad5120 BUG: 1414346 Signed-off-by: Sanoj Unnikrishnan <sunnikri@redhat.com> Reviewed-on: http://review.gluster.org/16425 Smoke: Gluster Build System <jenkins@build.gluster.org> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.org> Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-quota.c')
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-quota.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-quota.c b/xlators/mgmt/glusterd/src/glusterd-quota.c
index c1c95ae5170..8685f761ce3 100644
--- a/xlators/mgmt/glusterd/src/glusterd-quota.c
+++ b/xlators/mgmt/glusterd/src/glusterd-quota.c
@@ -1069,6 +1069,11 @@ glusterd_store_quota_config (glusterd_volinfo_t *volinfo, char *path,
if (ret)
goto out;
+ if (GF_QUOTA_OPTION_TYPE_UPGRADE == opcode) {
+ /* Nothing more to be done here */
+ goto out;
+ }
+
conf_fd = open (volinfo->quota_conf_shandle->path, O_RDONLY);
if (conf_fd == -1) {
ret = -1;
@@ -1078,6 +1083,9 @@ glusterd_store_quota_config (glusterd_volinfo_t *volinfo, char *path,
ret = quota_conf_skip_header (conf_fd);
if (ret)
goto out;
+ } else if (GF_QUOTA_OPTION_TYPE_UPGRADE == opcode) {
+ /* No change to be done in quota_conf*/
+ goto out;
}
/* If op-ver is gt 3.7, then quota.conf will be upgraded, and 17 bytes
@@ -1100,12 +1108,7 @@ glusterd_store_quota_config (glusterd_volinfo_t *volinfo, char *path,
/* Just create empty quota.conf file if create */
if (GF_QUOTA_OPTION_TYPE_ENABLE == opcode ||
- GF_QUOTA_OPTION_TYPE_ENABLE_OBJECTS == opcode ||
- GF_QUOTA_OPTION_TYPE_UPGRADE == opcode) {
- /* Opcode will be GF_QUOTA_OPTION_TYPE_UPGRADE when there is
- * an upgrade from 3.6 to 3.7. Just upgrade the quota.conf
- * file even during an op-version bumpup and exit.
- */
+ GF_QUOTA_OPTION_TYPE_ENABLE_OBJECTS == opcode) {
modified = _gf_true;
goto out;
}
@@ -1234,7 +1237,7 @@ out:
if (ret && (fd > 0)) {
gf_store_unlink_tmppath (volinfo->quota_conf_shandle);
- } else if (!ret) {
+ } else if (!ret && GF_QUOTA_OPTION_TYPE_UPGRADE != opcode) {
ret = gf_store_rename_tmppath (volinfo->quota_conf_shandle);
if (modified) {
ret = glusterd_compute_cksum (volinfo, _gf_true);