From c1958d703af67ae7154c8ff8ff348c39853e6b6f Mon Sep 17 00:00:00 2001 From: Varun Shastry Date: Thu, 22 Aug 2013 10:28:26 +0530 Subject: posix, quota, glusterd, dht: Modification to the pgfid xattr handling Commit makes the following changes to the source. i. Updating hard link count for parent dir should be configurable. Starts working only when the quota is enabled. ii. Heal nlinks of pgfid xattr in lookup. iii. Start quota crawler without readdirp optimization. iv. Rename: Handle the internal fops properly. Use GLUSTERFS_INTERNAL_FOP_KEY for representing the internal fops. Change-Id: Ic6586a82a8bb6eb4329eb6cbd5430da11418e753 BUG: 969461 Signed-off-by: Raghavendra Bhat Signed-off-by: Varun Shastry --- xlators/mgmt/glusterd/src/glusterd-volgen.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'xlators/mgmt/glusterd/src/glusterd-volgen.c') diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c index 4cc9a63b..25152998 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.c +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c @@ -1423,7 +1423,8 @@ server_graph_builder (volgen_graph_t *graph, glusterd_volinfo_t *volinfo, char *vg = NULL; glusterd_brickinfo_t *brickinfo = NULL; char changelog_basepath[PATH_MAX] = {0,}; - char *value = NULL; + char *quota_state = NULL; + gf_boolean_t quota_enabled = _gf_false; brickinfo = param; path = brickinfo->path; @@ -1442,6 +1443,13 @@ server_graph_builder (volgen_graph_t *graph, glusterd_volinfo_t *volinfo, } } + ret = glusterd_volinfo_get (volinfo, VKEY_FEATURES_QUOTA, "a_state); + if (quota_state) { + ret = gf_string2boolean (quota_state, "a_enabled); + if (ret) + goto out; + } + if (volinfo->backend == GD_VOL_BK_BD) { xl = volgen_graph_add (graph, "storage/bd_map", volname); if (!xl) @@ -1478,8 +1486,12 @@ server_graph_builder (volgen_graph_t *graph, glusterd_volinfo_t *volinfo, if (ret) return -1; + if (quota_enabled) + xlator_set_option (xl, "update-pgfid-nlinks", + quota_state); + ret = check_and_add_debug_xl (graph, set_dict, volname, - "posix"); + "posix"); if (ret) return -1; } @@ -1615,9 +1627,8 @@ server_graph_builder (volgen_graph_t *graph, glusterd_volinfo_t *volinfo, if (ret) return -1; - ret = glusterd_volinfo_get (volinfo, VKEY_FEATURES_QUOTA, &value); - if (value) { - ret = xlator_set_option (xl, "server-quota", value); + if (quota_enabled) { + ret = xlator_set_option (xl, "server-quota", quota_state); if (ret) return -1; } -- cgit