Skip to content

Commit 72fcf9b

Browse files
authored
Merge pull request #1536 from hreinecke/TP8013
fabrics: support unique discovery subsystem NQN
2 parents 3d331e1 + 479c60c commit 72fcf9b

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

fabrics.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ struct connect_args {
8282
char *trsvcid;
8383
char *host_traddr;
8484
char *host_iface;
85+
char *subsystype;
8586
struct connect_args *next;
8687
struct connect_args *tail;
8788
};
@@ -296,6 +297,13 @@ static bool ctrl_matches_connectargs(const char *name, struct connect_args *args
296297
addr = nvme_get_ctrl_attr(path, "address");
297298
cargs.subsysnqn = nvme_get_ctrl_attr(path, "subsysnqn");
298299
cargs.transport = nvme_get_ctrl_attr(path, "transport");
300+
cargs.subsystype = nvme_get_ctrl_attr(path, "subsystype");
301+
if (!cargs.subsystype) {
302+
if (!strcmp(cargs.subsysnqn, NVME_DISC_SUBSYS_NAME))
303+
cargs.subsystype = strdup("discovery");
304+
else
305+
cargs.subsystype = strdup("nvm");
306+
}
299307

300308
if (!addr || !cargs.subsysnqn || !cargs.transport) {
301309
fprintf(stderr, "nvme_get_ctrl_attr failed\n");
@@ -307,7 +315,7 @@ static bool ctrl_matches_connectargs(const char *name, struct connect_args *args
307315
cargs.host_traddr = parse_conn_arg(addr, ' ', conarg_host_traddr);
308316
cargs.host_iface = parse_conn_arg(addr, ' ', conarg_host_iface);
309317

310-
if (!strcmp(cargs.subsysnqn, NVME_DISC_SUBSYS_NAME)) {
318+
if (!strcmp(cargs.subsystype, "discovery")) {
311319
char *kato_str = nvme_get_ctrl_attr(path, "kato"), *p;
312320
unsigned int kato = 0;
313321

@@ -416,6 +424,7 @@ static void destruct_connect_args(struct connect_args *cargs)
416424
free(cargs->trsvcid);
417425
free(cargs->host_traddr);
418426
free(cargs->host_iface);
427+
free(cargs->subsystype);
419428
}
420429

421430
static void free_connect_args(struct connect_args *cargs)

0 commit comments

Comments
 (0)