From ff7f6fc82cfe3a6af4bf3f339c31843a0e9c9b28 Mon Sep 17 00:00:00 2001 From: Raghavendra Talur Date: Mon, 9 May 2016 21:06:07 +0530 Subject: gfapi: clear loc.gfid when retrying after ESTALE If an ESTALE is returned as result of a revalidate lookup, it means the previous gfid and inode are to be discarded and lookup has to be tried as a fresh one. A fresh lookup should not have loc.gfid set. We were creating a new inode and passing it down but not clearing loc.gfid. This patch fixes that. >Change-Id: Ib192ada0528b5fb5e49b4e2555f2bcab62710e2d >BUG: 1334444 >Signed-off-by: Raghavendra Talur >Reviewed-on: http://review.gluster.org/14274 >Smoke: Gluster Build System >NetBSD-regression: NetBSD Build System >Reviewed-by: Niels de Vos >CentOS-regression: Gluster Build System >Reviewed-by: Pranith Kumar Karampuri >(cherry picked from commit b2f09e531029f573772a09572cee0f8e1855481b) Change-Id: Ib192ada0528b5fb5e49b4e2555f2bcab62710e2d BUG: 1334441 Signed-off-by: Raghavendra Talur Reviewed-on: http://review.gluster.org/14290 Smoke: Gluster Build System NetBSD-regression: NetBSD Build System CentOS-regression: Gluster Build System Reviewed-by: Rajesh Joseph --- api/src/glfs-resolve.c | 1 + 1 file changed, 1 insertion(+) (limited to 'api') diff --git a/api/src/glfs-resolve.c b/api/src/glfs-resolve.c index c2c6e64fb9d..4c44b4f7ac8 100644 --- a/api/src/glfs-resolve.c +++ b/api/src/glfs-resolve.c @@ -323,6 +323,7 @@ glfs_resolve_component (struct glfs *fs, xlator_t *subvol, inode_t *parent, inode_unlink(loc.inode, loc.parent, loc.name); inode_unref (loc.inode); + gf_uuid_clear (loc.gfid); loc.inode = inode_new (parent->table); if (!loc.inode) { errno = ENOMEM; -- cgit