]> www.infradead.org Git - users/sagi/libnvme.git/commitdiff
tree: set errno in nvme_create_ctrl()
authorHannes Reinecke <hare@suse.de>
Thu, 12 Aug 2021 06:25:45 +0000 (08:25 +0200)
committerHannes Reinecke <hare@suse.de>
Thu, 12 Aug 2021 10:10:48 +0000 (12:10 +0200)
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 <hare@suse.de>
src/nvme/tree.c

index 6bcaf035eccb82361b9373791c04ec7ff091b9a8..774427ff64c7d9018efd1204f10c05cf4d8c90bb 100644 (file)
@@ -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;
        }