From: Fan Yong Date: Fri, 17 Jun 2016 03:20:39 +0000 (+0800) Subject: LU-6635 lfsck: block replacing the OST-object for test X-Git-Tag: 2.8.60~52 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=7a814e94e065551ab79e2ba75df9626e4940efc5;hp=51f1b46dab6c2cc16f71d3f3be483f530b5e4001 LU-6635 lfsck: block replacing the OST-object for test For sanity-lfsck test_18e, sometimes, before the client wirte happened, the layout LFSCK has already gone into the phase2 and replaced the new created OST-object with the old orphan OST-object, then cause the subsequent check failure. To resolve such trouble, we will hold the layout LFSCK when replacing the new created OST-object until the client write happened. Signed-off-by: Fan Yong Change-Id: Ia5be2cd2ea920fa02bb281ca5c59d8d252f3fd7b Reviewed-on: http://review.whamcloud.com/18146 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: Lai Siyao Reviewed-by: Oleg Drokin --- diff --git a/lustre/lfsck/lfsck_layout.c b/lustre/lfsck/lfsck_layout.c index d1cff12..56890b6 100644 --- a/lustre/lfsck/lfsck_layout.c +++ b/lustre/lfsck/lfsck_layout.c @@ -2089,6 +2089,11 @@ static int lfsck_layout_conflict_create(const struct lu_env *env, int rc = 0; ENTRY; + while (CFS_FAIL_TIMEOUT(OBD_FAIL_LFSCK_DELAY3, cfs_fail_val)) { + if (unlikely(!thread_is_running(&com->lc_lfsck->li_thread))) + RETURN(0); + } + ostid_le_to_cpu(&slot->l_ost_oi, oi); rc = ostid_to_fid(cfid2, oi, ost_idx2); if (rc != 0)