Re: [PATCH] nvmet: use the enabled transport when disabling a port

From: Keith Busch

Date: Mon Oct 26 2026 - 12:02:38 EST


On Sat, Oct 24, 2026 at 03:18:51AM +0800, Rongzheng Wang wrote:
> nvmet_disable_port() looks up the transport from the current
> disc_addr.trtype, while nvmet_enable_port() records the transport in
> port->tr_ops. If trtype is changed while a port is being enabled, the
> port can be removed through a different transport, passing the private
> data of the original transport to the wrong ->remove_port().
>
> The same mismatch is reachable with loop and RDMA: loop add_port()
> leaves port->priv NULL, and RDMA remove_port() dereferences it.
>
> Use port->tr_ops for removal and serialize trtype changes with
> nvmet_config_sem in nvmet_addr_trtype_store(), so the transport that
> added the port is also the one that removes it.

Thanks, applied to nvme-7.4.