Skip to content

Commit c3e7c61

Browse files
committed
fabrics: refactor error propagation in nvmf_connect
With the introduction of nvme_add_ctrl we can use the return code directly and don't rely on the errno being set. Signed-off-by: Daniel Wagner <[email protected]>
1 parent 419180e commit c3e7c61

1 file changed

Lines changed: 13 additions & 13 deletions

File tree

fabrics.c

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,11 @@ static int nvme_add_ctrl(nvme_host_t h, nvme_ctrl_t c,
178178
int ret;
179179

180180
retry:
181+
/*
182+
* __create_discover_ctrl and callers depend on errno being set
183+
* in the error case.
184+
*/
185+
errno = 0;
181186
ret = nvmf_add_ctrl(h, c, cfg);
182187
if (!ret)
183188
return 0;
@@ -208,9 +213,7 @@ static nvme_ctrl_t __create_discover_ctrl(nvme_root_t r, nvme_host_t h,
208213
strcmp(trcfg->subsysnqn, NVME_DISC_SUBSYS_NAME));
209214
tmo = set_discovery_kato(cfg);
210215

211-
errno = 0;
212216
ret = nvme_add_ctrl(h, c, cfg);
213-
214217
cfg->keep_alive_tmo = tmo;
215218
if (ret) {
216219
nvme_free_ctrl(c);
@@ -1083,7 +1086,7 @@ int nvmf_connect(const char *desc, int argc, char **argv)
10831086

10841087
h = nvme_lookup_host(r, hnqn, hid);
10851088
if (!h) {
1086-
errno = ENOMEM;
1089+
ret = -ENOMEM;
10871090
goto out_free;
10881091
}
10891092
if (hostkey)
@@ -1106,14 +1109,14 @@ int nvmf_connect(const char *desc, int argc, char **argv)
11061109
c = lookup_ctrl(h, &trcfg);
11071110
if (c && nvme_ctrl_get_name(c) && !cfg.duplicate_connect) {
11081111
fprintf(stderr, "already connected\n");
1109-
errno = EALREADY;
1112+
ret = -EALREADY;
11101113
goto out_free;
11111114
}
11121115

11131116
c = nvme_create_ctrl(r, subsysnqn, transport, traddr,
11141117
cfg.host_traddr, cfg.host_iface, trsvcid);
11151118
if (!c) {
1116-
errno = ENOMEM;
1119+
ret = -ENOMEM;
11171120
goto out_free;
11181121
}
11191122

@@ -1122,21 +1125,18 @@ int nvmf_connect(const char *desc, int argc, char **argv)
11221125

11231126
nvme_parse_tls_args(keyring, tls_key, tls_key_identity, &cfg, c);
11241127

1125-
errno = 0;
11261128
ret = nvme_add_ctrl(h, c, &cfg);
1127-
if (ret)
1129+
if (ret) {
11281130
fprintf(stderr, "could not add new controller: %s\n",
1129-
nvme_strerror(errno));
1130-
else {
1131-
errno = 0;
1132-
if (flags != -EINVAL)
1133-
nvme_show_connect_msg(c, flags);
1131+
nvme_strerror(-ret));
1132+
} else if (flags != -EINVAL) {
1133+
nvme_show_connect_msg(c, flags);
11341134
}
11351135

11361136
out_free:
11371137
if (dump_config)
11381138
nvme_dump_config(r);
1139-
return -errno;
1139+
return ret;
11401140
}
11411141

11421142
static nvme_ctrl_t lookup_nvme_ctrl(nvme_root_t r, const char *name)

0 commit comments

Comments
 (0)