From 1868be8a5c309da8d516624d4af3b3b97819a9eb Mon Sep 17 00:00:00 2001 From: Manikandan Selvaganesh Date: Wed, 5 Aug 2015 19:23:01 +0530 Subject: quota : volume-reset shouldn't remove quota-deem-statfs Volume-reset shouldn't remove quota-deem-statfs, unless explicitly specified, when quota is enabled. 1) glusterd_op_stage_reset_volume () 'gluster volume set/reset ' features.quota/ features.inode-quota' should not be allowed as it is deprecated. Setting and resetting quota/inode-quota features should be allowed only through 'gluster volume quota enable/disable'. 2) glusterd_enable_default_options () Option 'features.quota-deem-statfs' should not be turned off with 'gluster volume reset ', since quota features can be set/reset only with 'gluster volume quota enable/disable'. But, 'gluster volume set features.quota-deem-statfs' can be turned on/off when quota is enabled. Change-Id: Ib5aa00a4d8c82819c08dfc23e2a86f43ebc436c4 BUG: 1250582 Signed-off-by: Manikandan Selvaganesh Reviewed-on: http://review.gluster.org/11839 Tested-by: NetBSD Build System Tested-by: Gluster Build System Reviewed-by: Vijaikumar Mallikarjuna Reviewed-by: Atin Mukherjee --- xlators/mgmt/glusterd/src/glusterd-utils.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'xlators/mgmt/glusterd/src/glusterd-utils.c') diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index dc800a1a520..17a8b06f433 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -9557,6 +9557,28 @@ glusterd_enable_default_options (glusterd_volinfo_t *volinfo, char *option) } } + /* Option 'features.quota-deem-statfs' should not be turned off + * with 'gluster volume reset ', since quota features + * can be reset only with 'gluster volume quota + * disable'. + */ + + if (!option || !strcmp ("features.quota-deem-statfs", option)) { + if (glusterd_is_volume_quota_enabled(volinfo)) { + ret = dict_set_dynstr_with_alloc (volinfo->dict, + "features.quota-deem-statfs", "on"); + if (ret) { + gf_msg (this->name, GF_LOG_ERROR, errno, + GD_MSG_DICT_SET_FAILED, + "Failed to set option " + "'features.quota-deem-statfs' " + "on volume %s", + volinfo->volname); + goto out; + } + } + } + } out: return ret; -- cgit