Commit bd02b6ab authored by Jim Harris's avatar Jim Harris
Browse files

bdev/passthru: return error code from vbdev_passthru_register



This ensures any errors get properly propagated back to the
RPC handler.

Signed-off-by: default avatarJim Harris <james.r.harris@intel.com>
Change-Id: Ia352b3bd7d8912e7095e9d3e6b2e80e3dccbeb42

Reviewed-on: https://review.gerrithub.io/432601


Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: default avatarPaul Luse <paul.e.luse@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent 72ff9238
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -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