On 12/09/2024 14:18, Christoph Hellwig wrote:
On Tue, Sep 03, 2024 at 03:07:48PM +0000, John Garry wrote:
if (sectors < bio_sectors(bio)) {
- struct bio *split = bio_split(bio, sectors, GFP_NOIO,
+ struct bio *split;
+
+ if (bio->bi_opf & REQ_ATOMIC)
+ return false;
I guess this is the erroring out when attempting to split the request.
I actually now think that I should change bio_split() to return NULL for
splitting a REQ_ATOMIC, like what do for ZONE_APPEND - calling
bio_split() like this is a common pattern in md RAID personalities.
However, none of the md RAID code check for a NULL split, which they
really should, so I can make that change also.
Can you add a comment to explain that and why it can't happen for the
normal I/O patterns?
ok, will do.
Cheers,
John