[PATCH RFC 2/2] nvme: set integrity metadata size for EXT_LBAS non-PI namespace
Christoph Hellwig
hch at lst.de
Wed May 6 22:49:44 PDT 2026
On Sun, Apr 26, 2026 at 08:34:57PM -0400, Chao Shi wrote:
> + /*
> + * For PCIe EXT_LBAS non-PI namespaces the block layer sets
> + * capacity to 0 (we return false) to prevent block I/O, but a
> + * cached-rq bio may bypass bio_queue_enter freeze serialisation
> + * and reach nvme_setup_rw() with head->ms != 0 and no
> + * REQ_INTEGRITY set. Populate bi->metadata_size so that
> + * bio_integrity_action() returns non-zero and bio_integrity_prep()
> + * sets REQ_INTEGRITY on any such bio, preventing the WARN_ON_ONCE
> + * at nvme_setup_rw() (addressed by patch 1/2).
This sounds like the Bug Keith is trying to fix in the block layer
("blk-mq: check for stale cached request in blk_mq_submit_bio") ?
More information about the Linux-nvme
mailing list