This series introduces atomic write support for software RAID 0/1/10. The main changes are to ensure that we can calculate the stacked device request_queue limits appropriately for atomic writes. Fundamentally, if some bottom does not support atomic writes, then atomic writes are not supported for the top device. Furthermore, the atomic writes limits are the lowest common supported limits from all bottom devices. Flag BLK_FEAT_ATOMIC_WRITES_STACKED is introduced to enable atomic writes for stacked devices selectively. This ensures that we can analyze and test atomic writes support per individual md/dm personality (prior to enabling). Based on 88d47f629313 (block/for-6.13/block) Merge tag 'md-6.13-20241115' of https://git.kernel.org/pub/scm/linux/kernel/git/mdraid/linux into for-6.13/block Differences to v4: - Add RB tags from Kuai (thanks!) - Change error code for atomic write to BB (Song, Kuai) - Add fuller comment about atomic write to BB (Kuai) Differences to v3: - Add RB tags from Christoph and Kuai (thanks!) - Rebase Differences to v2: - Refactor blk_stack_atomic_writes_limits() (Christoph) - Relocate RAID 1/10 BB check (Kuai) - Add RB tag from Christoph (Thanks!) - Set REQ_ATOMIC for RAID 1/10a John Garry (5): block: Add extra checks in blk_validate_atomic_write_limits() block: Support atomic writes limits for stacked devices md/raid0: Atomic write support md/raid1: Atomic write support md/raid10: Atomic write support block/blk-settings.c | 132 +++++++++++++++++++++++++++++++++++++++++ drivers/md/raid0.c | 1 + drivers/md/raid1.c | 20 ++++++- drivers/md/raid10.c | 20 ++++++- include/linux/blkdev.h | 4 ++ 5 files changed, 173 insertions(+), 4 deletions(-) -- 2.31.1