From: Jackie Liu <liu.yun@linux.dev>
To: dlemoal@kernel.org, axboe@kernel.dk
Cc: linux-block@vger.kernel.org
Subject: [PATCH] block: clear zone write plugging flag before failing rejected BIOs
Date: Sun, 7 Jun 2026 11:18:14 +0800 [thread overview]
Message-ID: <20260607031814.19188-1-liu.yun@linux.dev> (raw)
From: Jackie Liu <liuyun01@kylinos.cn>
Commit fe0418eb9bd6 ("block: Prevent potential deadlocks in zone write plug
error recovery") changed blk_zone_wplug_handle_write() to fail BIOs
directly when blk_zone_wplug_prepare_bio() rejects them, for example
because the write is not aligned to the cached write pointer or the plug
needs a write pointer update. However, the BIO is already marked with
BIO_ZONE_WRITE_PLUGGING at that point even though it is not issued.
Completing such a BIO with bio_io_error() makes bio_endio() call
blk_zone_write_plug_bio_endio(), which treats the completion as a failed
device write and may poison the cached zone write pointer state by setting
BLK_ZONE_WPLUG_NEED_WP_UPDATE.
Clear BIO_ZONE_WRITE_PLUGGING and drop the zone write plug reference before
failing the rejected BIO.
Fixes: fe0418eb9bd6 ("block: Prevent potential deadlocks in zone write plug error recovery")
Cc: stable@vger.kernel.org # 6.13+
Signed-off-by: Jackie Liu <liuyun01@kylinos.cn>
---
block/blk-zoned.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/block/blk-zoned.c b/block/blk-zoned.c
index 6a221c180889..855767d8bfc1 100644
--- a/block/blk-zoned.c
+++ b/block/blk-zoned.c
@@ -1502,7 +1502,9 @@ static bool blk_zone_wplug_handle_write(struct bio *bio, unsigned int nr_segs)
goto queue_bio;
if (!blk_zone_wplug_prepare_bio(zwplug, bio)) {
+ bio_clear_flag(bio, BIO_ZONE_WRITE_PLUGGING);
spin_unlock_irqrestore(&zwplug->lock, flags);
+ disk_put_zone_wplug(zwplug);
bio_io_error(bio);
return true;
}
--
2.54.0
next reply other threads:[~2026-06-07 3:18 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-07 3:18 Jackie Liu [this message]
2026-06-08 11:42 ` [PATCH] block: clear zone write plugging flag before failing rejected BIOs Damien Le Moal
2026-06-09 0:36 ` Jackie Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260607031814.19188-1-liu.yun@linux.dev \
--to=liu.yun@linux.dev \
--cc=axboe@kernel.dk \
--cc=dlemoal@kernel.org \
--cc=linux-block@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.