Hi Song, I've made changes as discussed in v2[1]. I did manual testing with IMSM metadata. Patch 1: - "%pg" propagated and raid0/linear_error refactored as Suggested by Guoqing. - missed dm-event, suggested by Guoqing- verified. IMO the behavior is same as before. Patch 2: - Commit id fixed, suggested by Gouqing. - Description rework, suggested by Xiao (discussed offline). - fail_last_dev handling added (and verified). - MD_BROKEN description modified, suggested by Gouqing. - Descriptions for raid1_error and raid10_error are added, redundant comments are removed. Patch3: - Error message for failed array changed, suggested by you. - MD_BROKEN setter moved to has_failed(), suggested by Gouqing. - has_failed() refactored Other notes: I followed kernel-doc style guidelines when editing or adding new descriptions. Please let me know if you consider it as unnecessary and messy. I also noticed potential issue during refactor related to MD_FAILFAST_SUPPORTED, please see the flag definition. I'm wondering if fail_last_dev functionality is not against failfast. Should I start separate thread for that? [1] https://lore.kernel.org/linux-raid/CAPhsuW43QfDNGEu72o2_eqDZ5vGq3tbFvdZ-W+dxVqcEhHmJ5w@xxxxxxxxxxxxxx/T/#t Mariusz Tkaczyk (3): raid0, linear, md: add error_handlers for raid0 and linear md: Set MD_BROKEN for RAID1 and RAID10 raid5: introduce MD_BROKEN drivers/md/md-linear.c | 15 ++++++++- drivers/md/md.c | 23 +++++++++----- drivers/md/md.h | 72 ++++++++++++++++++++++-------------------- drivers/md/raid0.c | 15 ++++++++- drivers/md/raid1.c | 42 ++++++++++++++---------- drivers/md/raid10.c | 33 ++++++++++++------- drivers/md/raid5.c | 49 ++++++++++++++-------------- 7 files changed, 151 insertions(+), 98 deletions(-) -- 2.26.2