From e96c70e04ff2644909b96d94d4718117f7402a40 Mon Sep 17 00:00:00 2001 From: Fan Yong Date: Sat, 5 Nov 2016 00:08:52 +0800 Subject: [PATCH] LU-9202 lfsck: skip unavailable targets when sync failures It is normal that some target (MDT or OST) may become unavailable when the LFSCK engine tries to sync failures with related target. Under such case, just skip such target without LBUG. Signed-off-by: Fan Yong Change-Id: Ib677e6fec121e946caafb34ebc71b8b3068bd6f5 Reviewed-on: https://review.whamcloud.com/25931 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Lai Siyao Reviewed-by: Alex Zhuravlev Reviewed-by: Oleg Drokin --- lustre/lfsck/lfsck_layout.c | 3 ++- lustre/lfsck/lfsck_namespace.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lustre/lfsck/lfsck_layout.c b/lustre/lfsck/lfsck_layout.c index bdda625..06390d8 100644 --- a/lustre/lfsck/lfsck_layout.c +++ b/lustre/lfsck/lfsck_layout.c @@ -288,7 +288,8 @@ static void lfsck_layout_assistant_sync_failures(const struct lu_env *env, down_read(<ds->ltd_rw_sem); cfs_foreach_bit(lad->lad_bitmap, idx) { ltd = lfsck_ltd2tgt(ltds, idx); - LASSERT(ltd != NULL); + if (unlikely(!ltd)) + continue; laia->laia_ltd = ltd; rc = lfsck_async_request(env, ltd->ltd_exp, lr, set, diff --git a/lustre/lfsck/lfsck_namespace.c b/lustre/lfsck/lfsck_namespace.c index eb701e4..67dcd60 100644 --- a/lustre/lfsck/lfsck_namespace.c +++ b/lustre/lfsck/lfsck_namespace.c @@ -6358,7 +6358,8 @@ static void lfsck_namespace_assistant_sync_failures(const struct lu_env *env, down_read(<ds->ltd_rw_sem); cfs_foreach_bit(lad->lad_bitmap, idx) { ltd = lfsck_ltd2tgt(ltds, idx); - LASSERT(ltd != NULL); + if (unlikely(!ltd)) + continue; laia->laia_ltd = ltd; rc = lfsck_async_request(env, ltd->ltd_exp, lr, set, -- 1.8.3.1