diff options
Diffstat (limited to 'xlators/cluster/dht/src/dht-common.c')
-rw-r--r-- | xlators/cluster/dht/src/dht-common.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c index 63a54cb3138..d977c1f87a1 100644 --- a/xlators/cluster/dht/src/dht-common.c +++ b/xlators/cluster/dht/src/dht-common.c @@ -5116,29 +5116,32 @@ dht_populate_inode_for_dentry (xlator_t *this, xlator_t *subvol, int ret = 0; loc_t loc = {0, }; + gf_uuid_copy (loc.gfid, orig_entry->d_stat.ia_gfid); + loc.inode = inode_ref (orig_entry->inode); + + if (is_revalidate (&loc)) { + goto out; + } + layout = dht_layout_new (this, 1); if (!layout) goto out; ret = dht_layout_merge (this, layout, subvol, 0, 0, orig_entry->dict); if (!ret) { - gf_uuid_copy (loc.gfid, orig_entry->d_stat.ia_gfid); - loc.inode = inode_ref (orig_entry->inode); - ret = dht_layout_normalize (this, &loc, layout); if (ret == 0) { dht_layout_set (this, orig_entry->inode, layout); entry->inode = inode_ref (orig_entry->inode); layout = NULL; } - - loc_wipe (&loc); } if (layout) dht_layout_unref (this, layout); out: + loc_wipe (&loc); return; } @@ -5286,6 +5289,7 @@ list: entry, orig_entry); } + } } else { if (orig_entry->inode) { |