summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/dht/src/dht-helper.c
diff options
context:
space:
mode:
authorKinglong Mee <kinglongmee@gmail.com>2019-01-08 16:38:45 +0800
committerRaghavendra G <rgowdapp@redhat.com>2019-02-13 18:22:01 +0000
commitd6e7ad2911ba8ae246c3a3ec62f04a712beca517 (patch)
tree5a8561182db2897f737e449b688504759f8ede0f /xlators/cluster/dht/src/dht-helper.c
parentb0f1d782fc45313fce4e1c0e74127401d5342d05 (diff)
dht: fix double extra unref of inode at heal path
The loc_wipe is done in the _out_ section, inode_unref(loc.parent) here casues a double extra unref of loc.parent. Change-Id: I2dc809328d3d34bf7b02c7df9a4f97788af511e6 updates: bz#1651439 Signed-off-by: Kinglong Mee <mijinlong@open-fs.com>
Diffstat (limited to 'xlators/cluster/dht/src/dht-helper.c')
-rw-r--r--xlators/cluster/dht/src/dht-helper.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/xlators/cluster/dht/src/dht-helper.c b/xlators/cluster/dht/src/dht-helper.c
index 1a5ba256ffd..4c57e0d2efc 100644
--- a/xlators/cluster/dht/src/dht-helper.c
+++ b/xlators/cluster/dht/src/dht-helper.c
@@ -1919,10 +1919,10 @@ dht_heal_path(xlator_t *this, char *path, inode_table_t *itable)
*/
linked_inode = loc.inode;
bname = strtok_r(NULL, "/", &save_ptr);
- inode_unref(loc.parent);
if (!bname) {
goto out;
}
+ inode_unref(loc.parent);
loc.parent = loc.inode;
gf_uuid_copy(loc.pargfid, loc.inode->gfid);
loc.inode = NULL;