summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/dht/src/dht-rebalance.c
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/cluster/dht/src/dht-rebalance.c')
-rw-r--r--xlators/cluster/dht/src/dht-rebalance.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/xlators/cluster/dht/src/dht-rebalance.c b/xlators/cluster/dht/src/dht-rebalance.c
index 6ba9dd1e463..3ab73d4ef5b 100644
--- a/xlators/cluster/dht/src/dht-rebalance.c
+++ b/xlators/cluster/dht/src/dht-rebalance.c
@@ -2341,7 +2341,7 @@ gf_defrag_settle_hash (xlator_t *this, gf_defrag_info_t *defrag,
loc_t *loc, dict_t *fix_layout)
{
int ret;
-
+ dht_conf_t *conf = NULL;
/*
* Now we're ready to update the directory commit hash for the volume
* root, so that hash miscompares and broadcast lookups can stop.
@@ -2355,6 +2355,19 @@ gf_defrag_settle_hash (xlator_t *this, gf_defrag_info_t *defrag,
return 0;
}
+ conf = this->private;
+ if (!conf) {
+ /*Uh oh
+ */
+ return -1;
+ }
+
+ if (conf->local_subvols_cnt == 0) {
+ /* Commit hash updates are only done on local subvolumes
+ */
+ return 0;
+ }
+
ret = dict_set_uint32 (fix_layout, "new-commit-hash",
defrag->new_commit_hash);
if (ret) {