diff options
author | shishir gowda <shishirng@gluster.com> | 2011-06-08 09:03:16 +0000 |
---|---|---|
committer | Anand Avati <avati@gluster.com> | 2011-06-08 11:18:27 -0700 |
commit | dbb66771878d8cb7e27ebc995c852603d6b35bda (patch) | |
tree | a1cb2cc35a77b7fc0580b6077be79e3c5e47562d /xlators | |
parent | caf13ea0ff4c67cfb30f990a9e3c9ffe9d45d035 (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
Diffstat (limited to 'xlators')
-rw-r--r-- | xlators/cluster/dht/src/dht-common.c | 4 |
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 47e6e8abec2..d6753ff5930 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 { |