diff options
-rw-r--r-- | xlators/cluster/dht/src/dht-helper.c | 5 | ||||
-rw-r--r-- | xlators/cluster/dht/src/dht-rebalance.c | 6 |
2 files changed, 11 insertions, 0 deletions
diff --git a/xlators/cluster/dht/src/dht-helper.c b/xlators/cluster/dht/src/dht-helper.c index 3a4217029b9..6d00ce68909 100644 --- a/xlators/cluster/dht/src/dht-helper.c +++ b/xlators/cluster/dht/src/dht-helper.c @@ -437,6 +437,11 @@ dht_local_wipe (xlator_t *this, dht_local_t *local) local->selfheal.layout = NULL; } + if (local->selfheal.refreshed_layout) { + dht_layout_unref (this, local->selfheal.refreshed_layout); + local->selfheal.refreshed_layout = NULL; + } + dht_lock_array_free (local->lock.locks, local->lock.lk_count); GF_FREE (local->lock.locks); diff --git a/xlators/cluster/dht/src/dht-rebalance.c b/xlators/cluster/dht/src/dht-rebalance.c index 5b154f531b4..c53c7a99882 100644 --- a/xlators/cluster/dht/src/dht-rebalance.c +++ b/xlators/cluster/dht/src/dht-rebalance.c @@ -2102,6 +2102,12 @@ gf_defrag_get_entry (xlator_t *this, int i, struct dht_container **container, gf_uuid_copy (entry_loc.pargfid, loc->gfid); entry_loc.inode->ia_type = df_entry->d_stat.ia_type; + + if (xattr_rsp) { + dict_unref (xattr_rsp); + xattr_rsp = NULL; + } + ret = syncop_lookup (conf->local_subvols[i], &entry_loc, &iatt, NULL, xattr_req, &xattr_rsp); if (ret) { |