From 669868d23eaeba42809fca7be134137c607d64ed Mon Sep 17 00:00:00 2001 From: Krutika Dhananjay Date: Wed, 19 Jul 2017 16:14:59 +0530 Subject: storage/posix: Use the ret value of posix_gfid_heal() ... to make the change in commit acf8cfdf truly useful. Without this, a race between entry creation fops and lookup at posix layer can cause lookups to fail with ENODATA, as opposed to ENOENT. Change-Id: I44a226872283a25f1f4812f03f68921c5eb335bb BUG: 1472758 Signed-off-by: Krutika Dhananjay Reviewed-on: https://review.gluster.org/17821 Smoke: Gluster Build System CentOS-regression: Gluster Build System Reviewed-by: Pranith Kumar Karampuri --- xlators/storage/posix/src/posix-helpers.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'xlators/storage/posix/src/posix-helpers.c') diff --git a/xlators/storage/posix/src/posix-helpers.c b/xlators/storage/posix/src/posix-helpers.c index e4cd5d6050b..2d193ccac10 100644 --- a/xlators/storage/posix/src/posix-helpers.c +++ b/xlators/storage/posix/src/posix-helpers.c @@ -1513,23 +1513,21 @@ posix_gfid_heal (xlator_t *this, const char *path, loc_t *loc, dict_t *xattr_req struct stat stat = {0, }; if (!xattr_req) - goto out; + return 0; - if (sys_lstat (path, &stat) != 0) - goto out; + if (sys_lstat (path, &stat) != 0) { + return -errno; + } ret = sys_lgetxattr (path, GFID_XATTR_KEY, uuid_curr, 16); if (ret != 16) { if (is_fresh_file (&stat)) { - ret = -1; - errno = ENOENT; - goto out; + return -ENOENT; } } - ret = posix_gfid_set (this, path, loc, xattr_req); -out: - return ret; + posix_gfid_set (this, path, loc, xattr_req); + return 0; } -- cgit