From: Keith Busch <kbusch@kernel.org>
To: Chao Shi <coshi036@gmail.com>
Cc: Jens Axboe <axboe@kernel.dk>, Christoph Hellwig <hch@lst.de>,
Sagi Grimberg <sagi@grimberg.me>,
linux-nvme@lists.infradead.org,
"Martin K . Petersen" <martin.petersen@oracle.com>,
Weidong Zhu <weizhu@fiu.edu>,
linux-block@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH] nvme: refuse an unsolicited format change on a namespace that is in use
Date: Tue, 11 Aug 2026 13:30:54 -0600 [thread overview]
Message-ID: <ant4bioGLl4B35n_@kbusch-mbp> (raw)
In-Reply-To: <20260811192111.2058140-1-coshi036@gmail.com>
On Tue, Aug 11, 2026 at 03:21:11PM -0400, Chao Shi wrote:
> @@ -2436,6 +2454,28 @@ static int nvme_update_ns_info_block(struct nvme_ns *ns,
> goto out;
> }
>
> + /*
> + * Changing the LBA format or the metadata size reinterprets everything
> + * the host has already cached, queued or handed to the integrity code
> + * for this namespace, and freezing the queue does not cover any of it:
> + * page cache contents, bios batched on a plug and the deferred
> + * integrity verify work all outlive the freeze. If such a change
> + * arrives unsolicited while the namespace is in use, refuse it and let
> + * the caller take the namespace offline rather than adopt a geometry
> + * that describes something else than what the host is holding.
> + */
> + if (nvme_ns_openers(ns) &&
> + !test_bit(NVME_CTRL_SELF_RESCAN, &ns->ctrl->flags) &&
> + (ns->head->lba_shift != id->lbaf[lbaf].ds ||
> + ns->head->ms != le16_to_cpu(id->lbaf[lbaf].ms))) {
> + dev_err(ns->ctrl->device,
> + "unsolicited format change on in-use nsid %u (lba_shift %u -> %u, ms %u -> %u)\n",
> + info->nsid, ns->head->lba_shift, id->lbaf[lbaf].ds,
> + ns->head->ms, le16_to_cpu(id->lbaf[lbaf].ms));
> + ret = NVME_SC_INVALID_NS | NVME_STATUS_DNR;
> + goto out;
> + }
Refusing to acknowledge the new format doesn't mean you get to continue
using the old format. You're going to corrupt memory and data this way.
next prev parent reply other threads:[~2026-08-11 19:31 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-11 19:21 [RFC PATCH] nvme: refuse an unsolicited format change on a namespace that is in use Chao Shi
2026-08-11 19:30 ` Keith Busch [this message]
2026-08-11 20:29 ` Chris S
2026-08-11 20:42 ` Keith Busch
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=ant4bioGLl4B35n_@kbusch-mbp \
--to=kbusch@kernel.org \
--cc=axboe@kernel.dk \
--cc=coshi036@gmail.com \
--cc=hch@lst.de \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=martin.petersen@oracle.com \
--cc=sagi@grimberg.me \
--cc=weizhu@fiu.edu \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox