CVE-2026-90401: md: remove REQ_NOWAIT support from raid1/10/456
In the Linux kernel, the following vulnerability has been resolved:
md: remove REQNOWAIT support from raid1/10/456
REQNOWAIT support in md personalities that can block internally is fundamentally incomplete. While reads can avoid some blocking paths, write requests can still encounter cases where one mirror succeeds while another returns -EAGAIN. At that point md cannot distinguish queue pressure from a real device failure, so it can neither record a bad block nor safely retry the write without REQNOWAIT, leaving mirrors with divergent data.
Rather than continue advertising REQNOWAIT support for personalities that cannot implement it correctly, remove it from raid1, raid10 and raid456. Keep REQNOWAIT for linear and raid0, which only remap bios to their underlying devices; stacked limits will still clear the feature if any component device lacks REQNOWAIT support.
Event History
Frequently Asked Questions
Which MD configurations are affected by the unsafe non-blocking I/O behavior?
The issue applies to MD raid1, raid10, and raid456 personalities when REQ_NOWAIT is used. Linear and raid0 retain REQ_NOWAIT support because they only remap bios to underlying devices.
What condition can lead to inconsistent mirror contents?
A non-blocking write can succeed on one mirror while another returns -EAGAIN. MD cannot safely determine whether that response reflects queue pressure or device failure, and cannot safely retry the write without REQ_NOWAIT, potentially leaving mirrors divergent.
How does the resolved change mitigate the issue?
It removes REQ_NOWAIT support from raid1, raid10, and raid456 so those personalities no longer advertise a capability they cannot implement safely. Stacked limits still remove REQ_NOWAIT when any component device lacks support.