From: Hannes Reinecke Date: Thu, 12 Aug 2021 06:25:45 +0000 (+0200) Subject: tree: set errno in nvme_create_ctrl() X-Git-Tag: v1.0-rc0~113^2~2 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=e6184c0f276650f32ee650cf1517ef0e0ba8d2e1;p=users%2Fsagi%2Flibnvme.git tree: set errno in nvme_create_ctrl() There is no reason why we shouldn't be setting errno in nvme_create_ctrl(); in fact, doing so will help with debugging. Signed-off-by: Hannes Reinecke --- diff --git a/src/nvme/tree.c b/src/nvme/tree.c index 6bcaf035..774427ff 100644 --- a/src/nvme/tree.c +++ b/src/nvme/tree.c @@ -872,18 +872,25 @@ struct nvme_ctrl *nvme_create_ctrl(const char *subsysnqn, const char *transport, if (!transport) { nvme_msg(LOG_ERR, "No transport specified\n"); + errno = EINVAL; return NULL; } if (strncmp(transport, "loop", 4) && !traddr) { nvme_msg(LOG_ERR, "No transport address for '%s'\n", transport); + errno = EINVAL; return NULL; } if (!subsysnqn) { nvme_msg(LOG_ERR, "No subsystem NQN specified\n"); + errno = EINVAL; return NULL; } else if (!strcmp(subsysnqn, NVME_DISC_SUBSYS_NAME)) discovery = true; c = calloc(1, sizeof(*c)); + if (!c) { + errno = ENOMEM; + return NULL; + } c->fd = -1; c->cfg.tos = -1; list_head_init(&c->namespaces); @@ -909,6 +916,7 @@ struct nvme_ctrl *nvme_create_ctrl(const char *subsysnqn, const char *transport, !strncmp(transport, "tcp", 3)) { nvme_msg(LOG_ERR, "No trsvcid specified for '%s'\n", transport); + errno = EINVAL; __nvme_free_ctrl(c); c = NULL; }