From bd02b6ab4e6ca5a00c6654ff1e2b37a6f52bb402 Mon Sep 17 00:00:00 2001 From: Jim Harris Date: Fri, 9 Nov 2018 05:29:18 -0700 Subject: [PATCH] bdev/passthru: return error code from vbdev_passthru_register This ensures any errors get properly propagated back to the RPC handler. Signed-off-by: Jim Harris Change-Id: Ia352b3bd7d8912e7095e9d3e6b2e80e3dccbeb42 Reviewed-on: https://review.gerrithub.io/432601 Reviewed-by: Ben Walker Reviewed-by: Shuhei Matsumoto Reviewed-by: Paul Luse Chandler-Test-Pool: SPDK Automated Test System Tested-by: SPDK CI Jenkins --- lib/bdev/passthru/vbdev_passthru.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/bdev/passthru/vbdev_passthru.c b/lib/bdev/passthru/vbdev_passthru.c index 63d707be1..920090779 100644 --- a/lib/bdev/passthru/vbdev_passthru.c +++ b/lib/bdev/passthru/vbdev_passthru.c @@ -523,12 +523,12 @@ vbdev_passthru_base_bdev_hotremove_cb(void *ctx) /* Create and register the passthru vbdev if we find it in our list of bdev names. * This can be called either by the examine path or RPC method. */ -static void +static int vbdev_passthru_register(struct spdk_bdev *bdev) { struct bdev_names *name; struct vbdev_passthru *pt_node; - int rc; + int rc = 0; /* Check our list of names from config versus this bdev and if * there's a match, create the pt_node & bdev accordingly. @@ -541,6 +541,7 @@ vbdev_passthru_register(struct spdk_bdev *bdev) SPDK_NOTICELOG("Match on %s\n", bdev->name); pt_node = calloc(1, sizeof(struct vbdev_passthru)); if (!pt_node) { + rc = -ENOMEM; SPDK_ERRLOG("could not allocate pt_node\n"); break; } @@ -549,6 +550,7 @@ vbdev_passthru_register(struct spdk_bdev *bdev) pt_node->base_bdev = bdev; pt_node->pt_bdev.name = strdup(name->vbdev_name); if (!pt_node->pt_bdev.name) { + rc = -ENOMEM; SPDK_ERRLOG("could not allocate pt_bdev name\n"); free(pt_node); break; @@ -609,6 +611,8 @@ vbdev_passthru_register(struct spdk_bdev *bdev) SPDK_NOTICELOG("pt_bdev registered\n"); SPDK_NOTICELOG("created pt_bdev for: %s\n", name->vbdev_name); } + + return rc; } /* Create the passthru disk from the given bdev and vbdev name. */ @@ -634,9 +638,7 @@ create_passthru_disk(const char *bdev_name, const char *vbdev_name) return 0; } - vbdev_passthru_register(bdev); - - return 0; + return vbdev_passthru_register(bdev); } void