Commit c4c3ffda authored by Damien Le Moal's avatar Damien Le Moal Committed by Jens Axboe

block: Improve blk_zone_write_plug_bio_merged()

Improve blk_zone_write_plug_bio_merged() to check that we succefully get
a reference on the zone write plug of the merged BIO, as expected since
for a merge we already have at least one request and one BIO referencing
the zone write plug. Comments in this function are also improved to
better explain the references to the BIO zone write plug.
Signed-off-by: default avatarDamien Le Moal <dlemoal@kernel.org>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
Link: https://lore.kernel.org/r/20240501110907.96950-11-dlemoal@kernel.orgSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 096bc7ea
......@@ -885,11 +885,16 @@ void blk_zone_write_plug_bio_merged(struct bio *bio)
bio_set_flag(bio, BIO_ZONE_WRITE_PLUGGING);
/*
* Increase the plug reference count and advance the zone write
* pointer offset.
* Get a reference on the zone write plug of the target zone and advance
* the zone write pointer offset. Given that this is a merge, we already
* have at least one request and one BIO referencing the zone write
* plug. So this should not fail.
*/
zwplug = disk_get_zone_wplug(bio->bi_bdev->bd_disk,
bio->bi_iter.bi_sector);
if (WARN_ON_ONCE(!zwplug))
return;
spin_lock_irqsave(&zwplug->lock, flags);
zwplug->wp_offset += bio_sectors(bio);
spin_unlock_irqrestore(&zwplug->lock, flags);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment