diff --git a/lib/nvme/nvme_cuse.c b/lib/nvme/nvme_cuse.c index 5f274594d..8913dcc5e 100644 --- a/lib/nvme/nvme_cuse.c +++ b/lib/nvme/nvme_cuse.c @@ -695,13 +695,14 @@ cuse_nvme_ns_start(struct cuse_device *ctrlr_device, uint32_t nsid, const char * if (rv < 0) { SPDK_ERRLOG("Device name too long.\n"); free(ns_device); - return -1; + return -ENAMETOOLONG; } - if (pthread_create(&ns_device->tid, NULL, cuse_thread, ns_device)) { + rv = pthread_create(&ns_device->tid, NULL, cuse_thread, ns_device); + if (rv != 0) { SPDK_ERRLOG("pthread_create failed\n"); free(ns_device); - return -1; + return -rv; } TAILQ_INSERT_TAIL(&ctrlr_device->ns_devices, ns_device, tailq); @@ -806,7 +807,7 @@ nvme_cuse_start(struct spdk_nvme_ctrlr *ctrlr) g_ctrlr_started = spdk_bit_array_create(128); if (g_ctrlr_started == NULL) { SPDK_ERRLOG("Cannot create bit array\n"); - return -1; + return -ENOMEM; } } @@ -838,9 +839,10 @@ nvme_cuse_start(struct spdk_nvme_ctrlr *ctrlr) snprintf(ctrlr_device->dev_name, sizeof(ctrlr_device->dev_name), "spdk/nvme%d", ctrlr_device->index); - if (pthread_create(&ctrlr_device->tid, NULL, cuse_thread, ctrlr_device)) { + rv = pthread_create(&ctrlr_device->tid, NULL, cuse_thread, ctrlr_device); + if (rv != 0) { SPDK_ERRLOG("pthread_create failed\n"); - rv = -1; + rv = -rv; goto err3; } TAILQ_INSERT_TAIL(&g_ctrlr_ctx_head, ctrlr_device, tailq); @@ -852,10 +854,10 @@ nvme_cuse_start(struct spdk_nvme_ctrlr *ctrlr) continue; } - if (cuse_nvme_ns_start(ctrlr_device, nsid, ctrlr_device->dev_name) < 0) { + rv = cuse_nvme_ns_start(ctrlr_device, nsid, ctrlr_device->dev_name); + if (rv < 0) { SPDK_ERRLOG("Cannot start CUSE namespace device."); cuse_nvme_ctrlr_stop(ctrlr_device); - rv = -1; goto err3; } } diff --git a/lib/nvme/nvme_io_msg.c b/lib/nvme/nvme_io_msg.c index 1b20418c4..b0819fa3e 100644 --- a/lib/nvme/nvme_io_msg.c +++ b/lib/nvme/nvme_io_msg.c @@ -136,7 +136,7 @@ nvme_io_msg_ctrlr_register(struct spdk_nvme_ctrlr *ctrlr, if (ctrlr->external_io_msgs_qpair == NULL) { SPDK_ERRLOG("spdk_nvme_ctrlr_alloc_io_qpair() failed\n"); spdk_ring_free(ctrlr->external_io_msgs); - return -1; + return -ENOMEM; } STAILQ_INSERT_TAIL(&ctrlr->io_producers, io_msg_producer, link); diff --git a/module/bdev/nvme/bdev_nvme_cuse_rpc.c b/module/bdev/nvme/bdev_nvme_cuse_rpc.c index 26cfd558f..d4be13a08 100644 --- a/module/bdev/nvme/bdev_nvme_cuse_rpc.c +++ b/module/bdev/nvme/bdev_nvme_cuse_rpc.c @@ -83,8 +83,8 @@ spdk_rpc_nvme_cuse_register(struct spdk_jsonrpc_request *request, rc = spdk_nvme_cuse_register(bdev_ctrlr->ctrlr); if (rc) { - SPDK_ERRLOG("Failed to register CUSE devices\n"); - spdk_jsonrpc_send_error_response(request, -rc, spdk_strerror(rc)); + SPDK_ERRLOG("Failed to register CUSE devices: %s\n", spdk_strerror(-rc)); + spdk_jsonrpc_send_error_response(request, rc, spdk_strerror(-rc)); goto cleanup; }