From f6a779ffc5b515163995dc2d240c3271cc6bceeb Mon Sep 17 00:00:00 2001 From: Raghavendra G Date: Wed, 7 Mar 2012 17:34:37 +0530 Subject: features/marker: GFID file handle based backend related fixes * make sure loc->gfid is filled. Change-Id: I5304e650d9fc181ee1f3b65be7f2ff3847d9722e BUG: 790389 Signed-off-by: Raghavendra G Reviewed-on: http://review.gluster.com/2888 Tested-by: Gluster Build System Reviewed-by: Raghavendra Bhat Reviewed-by: Vijay Bellur --- libglusterfs/src/xlator.c | 1 + xlators/features/marker/src/marker-quota.c | 5 ++++- xlators/features/marker/src/marker.c | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/libglusterfs/src/xlator.c b/libglusterfs/src/xlator.c index bbd6df683..f956908bb 100644 --- a/libglusterfs/src/xlator.c +++ b/libglusterfs/src/xlator.c @@ -563,6 +563,7 @@ loc_copy (loc_t *dst, loc_t *src) uuid_copy (dst->gfid, src->gfid); uuid_copy (dst->pargfid, src->pargfid); + uuid_copy (dst->gfid, src->gfid); if (src->inode) dst->inode = inode_ref (src->inode); diff --git a/xlators/features/marker/src/marker-quota.c b/xlators/features/marker/src/marker-quota.c index bc5fc6040..43e4ec724 100644 --- a/xlators/features/marker/src/marker-quota.c +++ b/xlators/features/marker/src/marker-quota.c @@ -1057,7 +1057,6 @@ mq_create_xattr (xlator_t *this, call_frame_t *frame) goto free_value; } - uuid_copy (local->loc.gfid, local->loc.inode->gfid); GF_UUID_ASSERT (local->loc.gfid); STACK_WIND (frame, mq_create_dirty_xattr, FIRST_CHILD(this), @@ -1129,6 +1128,10 @@ out: return 0; create_xattr: + if (uuid_is_null (local->loc.gfid)) { + uuid_copy (local->loc.gfid, buf->ia_gfid); + } + mq_create_xattr (this, frame); return 0; } diff --git a/xlators/features/marker/src/marker.c b/xlators/features/marker/src/marker.c index f29999340..e8bbd9d94 100644 --- a/xlators/features/marker/src/marker.c +++ b/xlators/features/marker/src/marker.c @@ -107,7 +107,7 @@ marker_inode_loc_fill (inode_t *inode, loc_t *loc) if (ret < 0) goto err; - ret = marker_loc_fill (loc, inode, NULL, resolvedpath); + ret = marker_loc_fill (loc, inode, parent, resolvedpath); if (ret < 0) goto err; -- cgit