On 11/26/24 10:21 PM, Christoph Hellwig wrote:
On Tue, Nov 26, 2024 at 10:16:18PM -0800, Christoph Hellwig wrote:
Did you trace where the bio_wouldblock_error is coming from? Probably
a failing request allocation? Can we call the guts of blk_zone_plug_bio
after allocating the request to avoid this?
The easier option might be to simply to "unprepare" the bio
(i.e. undo the append op rewrite and sector adjustment), decrement
wp_offset and retun. Given that no one else could issue I/O
while we were trying to allocate the bio this should work just fine.
Yet another possibility is to move the code that updates
zwplug->wp_offset from blk_zone_plug_bio() into
blk_zone_write_plug_init_request(). With this change the
zwplug->wp_offset update won't have to be undone in any case since it
happens after the all code in blk_mq_submit_bio() that can potentially
fail.
Thanks,
Bart.