summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshishir gowda <shishirng@gluster.com>2011-06-08 09:03:16 +0000
committerAnand Avati <avati@gluster.com>2011-06-08 11:18:27 -0700
commitdbb66771878d8cb7e27ebc995c852603d6b35bda (patch)
treea1cb2cc35a77b7fc0580b6077be79e3c5e47562d
parentcaf13ea0ff4c67cfb30f990a9e3c9ffe9d45d035 (diff)
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. Also, remove the spurious memcpy to inode.gfid Signed-off-by: shishir gowda <shishirng@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> 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
-rw-r--r--xlators/cluster/dht/src/dht-common.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c
index 47e6e8abe..d6753ff59 100644
--- a/xlators/cluster/dht/src/dht-common.c
+++ b/xlators/cluster/dht/src/dht-common.c
@@ -4059,9 +4059,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);
@@ -4241,6 +4238,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 {