From d70fe4d307aa664dd6774623a351e9f9334e27e8 Mon Sep 17 00:00:00 2001 From: Pranith Kumar K Date: Wed, 2 Nov 2011 13:09:03 +0530 Subject: cluster/afr: Modify finding gfid in lookup fop Change-Id: I1d3b2028f1db7db32266827bd0ba9b2a73474e3e BUG: 3770 Reviewed-on: http://review.gluster.com/659 Tested-by: Gluster Build System Reviewed-by: Amar Tumballi Reviewed-by: Vijay Bellur --- xlators/cluster/afr/src/afr-common.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/xlators/cluster/afr/src/afr-common.c b/xlators/cluster/afr/src/afr-common.c index 0db594bee..ba451a0e8 100644 --- a/xlators/cluster/afr/src/afr-common.c +++ b/xlators/cluster/afr/src/afr-common.c @@ -187,10 +187,16 @@ afr_lookup_xattr_req_prepare (afr_local_t *local, xlator_t *this, } void -afr_lookup_save_gfid (uuid_t dst, void* new, inode_t *inode) +afr_lookup_save_gfid (uuid_t dst, void* new, const loc_t *loc) { + inode_t *inode = NULL; + + GF_ASSERT (loc); + inode = loc->inode; if (inode && !uuid_is_null (inode->gfid)) { uuid_copy (dst, inode->gfid); + } else if (!uuid_is_null (loc->gfid)) { + uuid_copy (dst, loc->gfid); } else { GF_ASSERT (new && !uuid_is_null (new)); uuid_copy (dst, new); @@ -1700,8 +1706,7 @@ afr_lookup (call_frame_t *frame, xlator_t *this, afr_lookup_xattr_req_prepare (local, this, xattr_req, loc, &gfid_req); local->call_count = afr_up_children_count (priv->child_count, local->child_up); - afr_lookup_save_gfid (local->cont.lookup.gfid_req, gfid_req, - loc->inode); + afr_lookup_save_gfid (local->cont.lookup.gfid_req, gfid_req, loc); local->fop = GF_FOP_LOOKUP; for (i = 0; i < priv->child_count; i++) { if (local->child_up[i]) { -- cgit