From b25a987e3796b3c33fb4bdb8251ea498a8453cce Mon Sep 17 00:00:00 2001 From: shishir gowda Date: Thu, 9 Jun 2011 03:07:23 +0000 Subject: DHT selheal dir: Recreate dirs with correct gfid. When selfheal of dir is triggered, make sure the dirs are recreated with the correct gfid, to prevent mismatch of gfids in the backend. Signed-off-by: shishir gowda Signed-off-by: Anand Avati BUG: 2994 ([glusterfs-3.2.1qa2]: untar and rm in parallel hangs untar) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2994 --- xlators/cluster/dht/src/dht-common.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c index 5583bd559..e101b2b09 100644 --- a/xlators/cluster/dht/src/dht-common.c +++ b/xlators/cluster/dht/src/dht-common.c @@ -3806,9 +3806,6 @@ dht_mkdir_hashed_cbk (call_frame_t *frame, void *cookie, conf = this->private; hashed_subvol = local->hashed_subvol; - if (uuid_is_null (local->loc.inode->gfid) && !op_ret) - memcpy (local->loc.inode->gfid, stbuf->ia_gfid, 16); - if (dht_is_subvol_filled (this, hashed_subvol)) ret = dht_layout_merge (this, layout, prev->this, -1, ENOSPC, NULL); @@ -3991,6 +3988,7 @@ unlock: /* TODO: neater interface needed below */ local->stbuf.ia_type = local->loc.inode->ia_type; + uuid_copy (local->gfid, local->loc.inode->gfid); dht_selfheal_restore (frame, dht_rmdir_selfheal_cbk, &local->loc, local->layout); } else { -- cgit