diff options
-rw-r--r-- | xlators/features/marker/src/marker.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/xlators/features/marker/src/marker.c b/xlators/features/marker/src/marker.c index b2275944b31..5890c03948a 100644 --- a/xlators/features/marker/src/marker.c +++ b/xlators/features/marker/src/marker.c @@ -2204,8 +2204,13 @@ marker_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this, frame->local = NULL; + /* copy the gfid from the stat structure instead of inode, + * since if the lookup is fresh lookup, then the inode + * would have not yet linked to the inode table which happens + * in protocol/server. + */ if (!op_ret && local && uuid_is_null (local->loc.gfid)) - uuid_copy (local->loc.gfid, inode->gfid); + uuid_copy (local->loc.gfid, buf->ia_gfid); STACK_UNWIND_STRICT (lookup, frame, op_ret, op_errno, inode, buf, dict, postparent); |