static void __nvme_free_host(nvme_host_t h);
static void __nvme_free_ctrl(nvme_ctrl_t c);
static int nvme_subsystem_scan_namespace(struct nvme_subsystem *s, char *name);
-static int nvme_scan_subsystem(struct nvme_root *r, char *name,
+static int nvme_scan_subsystem(struct nvme_root *r, const char *name,
nvme_scan_filter_t f);
static int nvme_subsystem_scan_ctrl(struct nvme_subsystem *s, char *name);
static int nvme_ctrl_scan_namespace(struct nvme_ctrl *c, char *name);
return 0;
}
-static int nvme_scan_subsystem(struct nvme_root *r, char *name,
+static int nvme_scan_subsystem(struct nvme_root *r, const char *name,
nvme_scan_filter_t f)
{
struct nvme_subsystem *s;
return 0;
}
-static char *nvme_ctrl_lookup_subsystem_name(char *ctrl_name)
+static char *nvme_ctrl_lookup_subsystem_name(const char *ctrl_name)
{
struct dirent **subsys;
char *subsys_name = NULL;
nvme_subsystem_t s;
nvme_ctrl_t c;
char *path;
- char *hostnqn, *hostid, *subsysnqn;
+ char *hostnqn, *hostid, *subsysnqn, *subsysname;
int ret;
ret = asprintf(&path, "%s/%s", nvme_ctrl_sysfs_dir, name);
errno = ENXIO;
return NULL;
}
- s = nvme_lookup_subsystem(h, NULL, subsysnqn);
+ subsysname = nvme_ctrl_lookup_subsystem_name(name);
+ s = nvme_lookup_subsystem(h, subsysname, subsysnqn);
free(subsysnqn);
if (!s) {
free(path);