diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index b200c195160c995f2b34edb353bf037d636ab6ca..4b789f1f45508435e791e612f8665674e43d18a0 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -4316,6 +4316,9 @@ static void handle_stripe(struct stripe_head *sh) analyse_stripe(sh, &s); + if (test_bit(STRIPE_LOG_TRAPPED, &sh->state)) + goto finish; + if (s.handle_bad_blocks) { set_bit(STRIPE_HANDLE, &sh->state); goto finish; diff --git a/drivers/md/raid5.h b/drivers/md/raid5.h index 7686fcb62157117c67f7d320ec7b6081569d0398..a42c123d15d266552e00c1cd885417fdf680eb5f 100644 --- a/drivers/md/raid5.h +++ b/drivers/md/raid5.h @@ -340,6 +340,7 @@ enum { STRIPE_BITMAP_PENDING, /* Being added to bitmap, don't add * to batch yet. */ + STRIPE_LOG_TRAPPED, /* trapped into log */ }; #define STRIPE_EXPAND_SYNC_FLAGS \