Re: [PATCH RFC 3/5] block: validate bio bounds in the queue entered context
Keith Busch <[email protected]>
| Newsgroups | org.kernel.vger.linux-block,org.infradead.lists.linux-nvme |
|---|---|
| Message-ID | <anpBQXfo7eGNU2-v@kbusch-mbp> |
On Mon, Aug 10, 2026 at 05:12:45PM -0400, Chris S wrote: > Keith, I checked this patch against the nvme_setup_rw() WARN I reported > (the second link in your cover letter). __bio_split_to_limits() is > called from blk_mq_submit_bio() after bio_queue_enter(), on both the > cached-request path and the newly-allocated-request path, so the bounds > check is now serialized against the freeze window in > nvme_update_ns_info_block(). With the capacity forced to 0, the bio is > failed here and can no longer reach nvme_queue_rq(), which is exactly > the race I hit. Thanks for picking it up, and sorry for the slow reply. > > I'll drop my own "nvme: don't WARN on I/O to a namespace revalidated to > unusable metadata" patch in favour of this. I'll need to revisit this approach as it is dependent on something in the stack calling the split to limits functions, as well as the upper layers error handling for a catching the end-of-device condition later than before.