diff options
author | Shehjar Tikoo <shehjart@gluster.com> | 2010-02-25 15:37:59 +0000 |
---|---|---|
committer | Anand V. Avati <avati@dev.gluster.com> | 2010-03-04 03:12:58 -0800 |
commit | 5493db0d0664b9ed2515758122837c0d93d0f388 (patch) | |
tree | 6edf870463e2e7ad6c105a4f0c20346d0757e4d8 /xlators | |
parent | 8a7b7b09c96ab3f3f3426b0176cd0115f350e50f (diff) |
replicate: Restore parent ino from saved inode number
Not doing this was resulting in a 0 inode number being returned
in postparent on lookup, which in turn results in a ESTALE at
the NFS client since an inode number change was observed.
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
Diffstat (limited to 'xlators')
-rw-r--r-- | xlators/cluster/afr/src/afr.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/xlators/cluster/afr/src/afr.c b/xlators/cluster/afr/src/afr.c index c041adc99..f4917929c 100644 --- a/xlators/cluster/afr/src/afr.c +++ b/xlators/cluster/afr/src/afr.c @@ -1003,6 +1003,9 @@ afr_lookup (call_frame_t *frame, xlator_t *this, UNLOCK (&priv->read_child_lock); } + if (loc->parent) + local->cont.lookup.parent_ino = loc->parent->ino; + local->child_up = memdup (priv->child_up, priv->child_count); local->cont.lookup.xattrs = CALLOC (priv->child_count, |