Whamcloud - gitweb
LU-9202 lfsck: skip unavailable targets when sync failures 31/25931/3
authorFan Yong <fan.yong@intel.com>
Fri, 4 Nov 2016 16:08:52 +0000 (00:08 +0800)
committerOleg Drokin <oleg.drokin@intel.com>
Tue, 16 May 2017 05:46:31 +0000 (05:46 +0000)
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 <fan.yong@intel.com>
Change-Id: Ib677e6fec121e946caafb34ebc71b8b3068bd6f5
Reviewed-on: https://review.whamcloud.com/25931
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/lfsck/lfsck_layout.c
lustre/lfsck/lfsck_namespace.c

index bdda625..06390d8 100644 (file)
@@ -288,7 +288,8 @@ static void lfsck_layout_assistant_sync_failures(const struct lu_env *env,
        down_read(&ltds->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,
index eb701e4..67dcd60 100644 (file)
@@ -6358,7 +6358,8 @@ static void lfsck_namespace_assistant_sync_failures(const struct lu_env *env,
        down_read(&ltds->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,