summaryrefslogtreecommitdiff
path: root/block/blk-zoned.c
diff options
context:
space:
mode:
Diffstat (limited to 'block/blk-zoned.c')
-rw-r--r--block/blk-zoned.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/block/blk-zoned.c b/block/blk-zoned.c
index 1e5f362f0409..cd0049f5bf2f 100644
--- a/block/blk-zoned.c
+++ b/block/blk-zoned.c
@@ -874,8 +874,9 @@ void blk_zone_write_plug_bio_merged(struct bio *bio)
/*
* If the BIO was already plugged, then we were called through
- * blk_zone_write_plug_attempt_merge() -> blk_attempt_bio_merge().
- * For this case, blk_zone_write_plug_attempt_merge() will handle the
+ * blk_zone_write_plug_init_request() -> blk_attempt_bio_merge().
+ * For this case, we already hold a reference on the zone write plug for
+ * the BIO and blk_zone_write_plug_init_request() will handle the
* zone write pointer offset update.
*/
if (bio_flagged(bio, BIO_ZONE_WRITE_PLUGGING))
@@ -899,7 +900,7 @@ void blk_zone_write_plug_bio_merged(struct bio *bio)
* already went through zone write plugging (either a new BIO or one that was
* unplugged).
*/
-void blk_zone_write_plug_attempt_merge(struct request *req)
+void blk_zone_write_plug_init_request(struct request *req)
{
sector_t req_back_sector = blk_rq_pos(req) + blk_rq_sectors(req);
struct request_queue *q = req->q;
@@ -910,6 +911,9 @@ void blk_zone_write_plug_attempt_merge(struct request *req)
unsigned long flags;
struct bio *bio;
+ if (WARN_ON_ONCE(!zwplug))
+ return;
+
/*
* Indicate that completion of this request needs to be handled with
* blk_zone_write_plug_complete_request(), which will drop the reference
@@ -1269,7 +1273,7 @@ void blk_zone_write_plug_complete_request(struct request *req)
/*
* Drop the reference we took when the request was initialized in
- * blk_zone_write_plug_attempt_merge().
+ * blk_zone_write_plug_init_request().
*/
disk_put_zone_wplug(zwplug);