Re: [PATCH] md/raid1,raid10: don't fail devices for invalid IO errors
"Yu Kuai" <[email protected]>
| Newsgroups | gmane.linux.raid |
|---|---|
| Message-ID | <[email protected]> |
在 2026/4/16 22:03, Keith Busch 写道: > From: Keith Busch<[email protected]> > > BLK_STS_INVAL indicates the IO request itself was invalid, not that the > device has failed. When raid1 treats this as a device error, it retries > on alternate mirrors which fail the same way, eventually exceeding the > read error threshold and removing the device from the array. > > This happens when stacking configurations bypass bio_split_to_limits() > in the IO path: dm-raid calls md_handle_request() directly without going > through md_submit_bio(), skipping the alignment validation that would > otherwise reject invalid bios early. The invalid bio reaches the > lower block layers, which fail the bio with BLK_STS_INVAL, and raid1 > wrongly interprets this as a device failure. > > Add BLK_STS_INVAL to raid1_should_handle_error() so that invalid IO > errors are propagated back to the caller rather than triggering device > removal. This is consistent with the previous kernel behavior when > alignment checks were done earlier in the direct-io path. > > Fixes: 5ff3f74e145adc7 ("block: simplify direct io validity check") > Link:https://lore.kernel.org/linux-block/2982107.4sosBPzcNG@electra/ > Reported-by: Tomáš Trnka<[email protected]> > Signed-off-by: Keith Busch<[email protected]> > --- > drivers/md/raid1-10.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) Applied -- Thansk, Kuai