summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/dht/src
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/cluster/dht/src')
-rw-r--r--xlators/cluster/dht/src/dht-helper.c5
-rw-r--r--xlators/cluster/dht/src/dht-rebalance.c6
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) {