[RFC PATCH] nvme-fc: move tagset removal to nvme_fc_delete_ctrl()

Christoph Hellwig hch at lst.de
Wed Jan 15 22:10:04 PST 2025


On Mon, Jan 13, 2025 at 08:44:46PM +0800, Ming Lei wrote:
> Now target is removed from nvme_fc_ctrl_free() which is the ctrl->ref
> release handler. And even admin queue is unquiesced there, this way
> is definitely wrong because the ctr->ref is grabbed when submitting
> command.
> 
> And Marco observed that nvme_fc_ctrl_free() can be called from request
> completion code path, and trigger kernel warning since request completes
> from softirq context.
> 
> Fix the issue by moveing target removal into nvme_fc_delete_ctrl(),
> which is also aligned with nvme-tcp and nvme-rdma.
> 

Yeah, the current placement is wrong.  Can I talk someone to make
the whole setup/teardown process in nvme-fc match that of the other
fabrics (and slightly less so PCIe) order?  I know a long time ago
Sagi was atually looking into sharing more code as well, but that
would be a next step.

But I'd really like to have one known working sequence instead
of various different ones.




More information about the Linux-nvme mailing list