summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/bugs/quota/bug-1213364-disable-deem-statfs-when-quota-disable.t24
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-quota.c9
2 files changed, 33 insertions, 0 deletions
diff --git a/tests/bugs/quota/bug-1213364-disable-deem-statfs-when-quota-disable.t b/tests/bugs/quota/bug-1213364-disable-deem-statfs-when-quota-disable.t
new file mode 100644
index 00000000000..aaf4a315949
--- /dev/null
+++ b/tests/bugs/quota/bug-1213364-disable-deem-statfs-when-quota-disable.t
@@ -0,0 +1,24 @@
+#!/bin/bash
+. $(dirname $0)/../../include.rc
+. $(dirname $0)/../../volume.rc
+
+cleanup;
+
+TEST glusterd
+TEST pidof glusterd
+
+TEST $CLI volume create $V0 replica 2 $H0:$B0/${V0}{1,2};
+EXPECT 'Created' volinfo_field $V0 'Status';
+
+TEST $CLI volume start $V0;
+EXPECT 'Started' volinfo_field $V0 'Status';
+
+TEST $CLI volume quota $V0 enable
+EXPECT 'on' volinfo_field $V0 'features.quota'
+EXPECT 'on' volinfo_field $V0 'features.quota-deem-statfs'
+
+TEST $CLI volume quota $V0 disable
+EXPECT 'off' volinfo_field $V0 'features.quota'
+EXPECT '' volinfo_field $V0 'features.quota-deem-statfs'
+
+cleanup;
diff --git a/xlators/mgmt/glusterd/src/glusterd-quota.c b/xlators/mgmt/glusterd/src/glusterd-quota.c
index ff6ece9bbca..7238032b141 100644
--- a/xlators/mgmt/glusterd/src/glusterd-quota.c
+++ b/xlators/mgmt/glusterd/src/glusterd-quota.c
@@ -456,6 +456,15 @@ glusterd_quota_enable (glusterd_volinfo_t *volinfo, char **op_errstr,
goto out;
}
+ ret = dict_set_dynstr_with_alloc (volinfo->dict,
+ "features.quota-deem-statfs",
+ "on");
+ if (ret) {
+ gf_log (this->name, GF_LOG_ERROR, "setting quota-deem-statfs"
+ "in volinfo failed");
+ goto out;
+ }
+
*crawl = _gf_true;
ret = glusterd_store_quota_config (volinfo, NULL, NULL,