On Fri, Oct 31, 2025 at 03:12:57PM +0900, Damien Le Moal wrote: > The functions blk_zone_wplug_handle_reset_or_finish() and > blk_zone_wplug_handle_reset_all() both modify the zone write pointer > offset of zone write plugs that are the target of a reset, reset all or > finish zone management operation. However, these functions do this > modification before the BIO is executed. So if the zone operation fails, > the modified zone write pointer offsets become invalid. > > Avoid this by modifying the zone write pointer offset of a zone write > plug that is the target of a zone management operation when the > operation completes. To do so, modify blk_zone_bio_endio() to call the > new function blk_zone_mgmt_bio_endio() which in turn calls the functions > blk_zone_reset_all_bio_endio(), blk_zone_reset_bio_endio() or > blk_zone_finish_bio_endio() depending on the operation of the completed > BIO, to modify a zone write plug write pointer offset accordingly. > These functions are called only if the BIO execution was successful. > > Signed-off-by: Damien Le Moal <[email protected]>
Should this have a fixes tag and move to the start of the series? Otherwise looks good: Reviewed-by: Christoph Hellwig <[email protected]>
