From 3dcb7d098759614ae7deb532e1555bd82dac7936 Mon Sep 17 00:00:00 2001 From: "John L. Hammond" Date: Tue, 17 Oct 2017 15:32:52 -0500 Subject: [PATCH] LU-10132 llite: handle xattr cache refill race In ll_xattr_cache_refill() if the xattr cache was invalid (and no request was sent) then return -EAGAIN so that ll_getxattr_common() caller will fetch the xattr from the MDT. Signed-off-by: John L. Hammond Change-Id: Ia9ec7424e8786d92bdecf4897fafcf71d5061fb1 Reviewed-on: https://review.whamcloud.com/29654 Tested-by: Jenkins Reviewed-by: Andreas Dilger Tested-by: Maloo Reviewed-by: Lai Siyao Reviewed-by: Oleg Drokin --- lustre/llite/xattr_cache.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lustre/llite/xattr_cache.c b/lustre/llite/xattr_cache.c index 50dcbe7..11946de 100644 --- a/lustre/llite/xattr_cache.c +++ b/lustre/llite/xattr_cache.c @@ -401,7 +401,7 @@ static int ll_xattr_cache_refill(struct inode *inode) if (unlikely(req == NULL)) { CDEBUG(D_CACHE, "cancelled by a parallel getxattr\n"); ll_intent_drop_lock(&oit); - GOTO(err_unlock, rc = -EIO); + GOTO(err_unlock, rc = -EAGAIN); } body = req_capsule_server_get(&req->rq_pill, &RMF_MDT_BODY); -- 1.8.3.1