From 753185d56492b4f9044df186ce664f206388ef46 Mon Sep 17 00:00:00 2001 From: Kotresh H R Date: Tue, 25 Feb 2014 16:20:46 +0530 Subject: geo-rep/gfid-access: Fix errno for non-existent GFID. Because of http://review.gluster.org/#/c/6318/ patch, ESTALE is returned for a lookukp on non-existent GFID. But ENOENT is more appropriate when lookup happens through virtual .gfid directory on aux-gfid-mount point. This is avoids confusion for the consumers of gfid-access-translator like geo-rep which expects ENOENT. Change-Id: I4add2edf5958bb59ce55d02726e6b3e801b101bb BUG: 1069191 Signed-off-by: Kotresh H R Reviewed-on: http://review.gluster.org/7154 Tested-by: Gluster Build System Reviewed-by: Raghavendra G Reviewed-by: Venky Shankar Reviewed-by: Anand Avati Reviewed-on: http://review.gluster.org/7163 Reviewed-by: Vijay Bellur --- xlators/features/gfid-access/src/gfid-access.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/xlators/features/gfid-access/src/gfid-access.c b/xlators/features/gfid-access/src/gfid-access.c index 362fdab5a..8e614397c 100644 --- a/xlators/features/gfid-access/src/gfid-access.c +++ b/xlators/features/gfid-access/src/gfid-access.c @@ -666,6 +666,11 @@ ga_virtual_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this, buf->ia_ino = temp_ino; unwind: + /* Lookup on non-existing gfid returns ESTALE. + Convert into ENOENT for virtual lookup*/ + if (op_errno == ESTALE) + op_errno = ENOENT; + STACK_UNWIND_STRICT (lookup, frame, op_ret, op_errno, cbk_inode, buf, xdata, postparent); -- cgit