[PATCH 0/2] nvme: add reference counting for transport modules
John Garry
john.garry at linux.dev
Tue Sep 1 01:14:28 PDT 2026
On 8/31/26 16:19, Nilay Shroff wrote:
> Hi,
>
> This patchset adds reference counting for NVMe transport modules while
> the corresponding multipath head node is open. This prevents the
> underlying transport module from being unloaded while it is still in
> use by the multipath head node. Unloading a transport module while it
> is still in use can result in undefined behavior.
>
What is the undefined behaviour specifically?
When the ctrl ops module ref counting was originally introduced, the
commit message mentioned a crash which it solves.
So far for this problem we have seen a report that if we remove the
module, the mounted FS will have IOs fail. The same can be experienced
if the admin unbinds the device from the driver. However, I have not
seen a mention of a crash, kernel data corruption, a hang, etc.
> The second patch adds a Clang context annotation for the shared field
> used to track the number of active head node openers, allowing the
> Clang context analyzer to validate accesses to the field.
>
> As usual, feedback and suggestions are welcome.
>
> Thanks!
>
> Nilay Shroff (2):
> nvme: keep transport module referenced while head node is open
> nvme: add context annotation for nvme_ns_head::nr_openers
>
> drivers/nvme/host/core.c | 11 +++++++++--
> drivers/nvme/host/multipath.c | 37 +++++++++++++++++++++++++++++++++--
> drivers/nvme/host/nvme.h | 33 +++++++++++++++++++++++++++++++
> 3 files changed, 77 insertions(+), 4 deletions(-)
>
More information about the Linux-nvme
mailing list