With the series, 'modprobe -r nvme && modprobe nvme' is failing. I can
get that to pass with the following:
---
@@ -1904,7 +1907,11 @@ static void nvme_free_subsystem(struct device *dev)
static void nvme_put_subsystem(struct nvme_subsystem *subsys)
{
put_device(&subsys->dev);
+
+ if (list_empty(&subsys->ctrls))
+ device_del(&subsys->dev);
}
static struct nvme_subsystem *__nvme_find_get_subsystem(const char *subsysnqn)
--
But this is racy with nvme_init_subsystem, and it creates warnings:
kernfs: can not remove 'uevent', no directory
kernfs: can not remove 'online', no directory