On Tue, May 15, 2018 at 09:40:41AM +0200, Johannes Thumshirn wrote: > In nvmf_dev_write we did check if the /dev/nvme-fabrics device node's > private data is already set and then create a controller data > structure afterwards. The private data is protected by the > nvmf_dev_mutex, but there is no need to hold it while calling > nvmf_create_ctrl(). > > This also reduces the number of lockdep complaints in the 'nvme > connect' with fcloop scenario.
Something looks seriously fishy in fcloop. How do we and up in a RCU critical section here? In general it seems like fc loop needs to offload any I/O to a workqueue just like nvme-loop does, but even then I can't see how that is going to cause an issue in this area.