distribute: Save ino/dev from first subvolume during mkdir

A self-heal on directory creation results in the subsequent
call to dht_selfheal_new_directory to happen only for the last subvolume.
But when this function is called for the last subvol it is possible
that the st_ino returned in this function's callback is the st_ino
from the hashed subvolume(assigned in dht_mkdir_hashed_cbk).

Signed-off-by: Shehjar Tikoo <shehjart@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>

BUG: 597 (miscellaneous fixes for xlators to work well with NFS xlator)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=597
This commit is contained in:
Shehjar Tikoo 2010-02-25 15:38:06 +00:00 committed by Anand V. Avati
parent 549d1a81f4
commit 11433ebf94

View File

@ -3118,6 +3118,12 @@ dht_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
dht_stat_merge (this, &local->preparent, preparent, prev->this);
dht_stat_merge (this, &local->postparent, postparent,
prev->this);
if (prev->this == dht_first_up_subvol (this)) {
local->st_ino = local->stbuf.st_ino;
local->st_dev = local->stbuf.st_dev;
}
}
unlock:
UNLOCK (&frame->lock);