commit df80eb6a6357bbaa05dcad3503918745323ad8f1 Author: Tomas Bzatek Date: Tue Mar 22 16:22:30 2022 +0100 tree: Fix subsystem initialization in nvme_scan_ctrl() The subsystem instance would normally get properly initialized in later stages of topology scanning, unless there's a host mismatch and the instance would stand alone. diff --git a/src/nvme/tree.c b/src/nvme/tree.c index 96106b0..0764690 100644 --- a/src/nvme/tree.c +++ b/src/nvme/tree.c @@ -1364,10 +1364,13 @@ nvme_ctrl_t nvme_scan_ctrl(nvme_root_t r, const char *name) subsysname = nvme_ctrl_lookup_subsystem_name(r, name); /* subsysname might be NULL here */ s = nvme_lookup_subsystem(h, subsysname, subsysnqn); - if (subsysname) - free(subsysname); free(subsysnqn); - if (!s) { + + ret = 0; + if (s && !s->name) + ret = nvme_init_subsystem(s, subsysname); + free(subsysname); + if (!s || ret < 0) { free(path); errno = ENOMEM; return NULL;