Commit bfd1e46e authored by Jim Harris's avatar Jim Harris Committed by Darek Stojaczyk
Browse files

bdev: deprecate spdk_vbdev_register



This API had good intentions, but as more complicated
use cases came up where base bdevs could come and go,
we've realized that the bdev layer will need another
mechanism to query bdev modules on these types of
relationships between a virtual bdev and its base
bdevs.  We removed all code related to tracking
the array of base bdevs a long time ago.

Change all existing callers to use spdk_bdev_register.
Document spdk_vbdev_register as deprecated for now,
and change its implementation to just call
spdk_bdev_register for simplicity sake.

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

Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/450076


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
parent a0760b95
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -43,6 +43,9 @@ to be performed on the thread at given time.
An new API `spdk_bdev_get_data_block_size` has been added to get size of data
block except for metadata.

spdk_vbdev_register() has been deprecated.  spdk_bdev_register() should be used
instead.

### NVMe-oF Target

Support for per-device shared receive queues in the RDMA transport has been added.
+4 −0
Original line number Diff line number Diff line
@@ -603,6 +603,10 @@ void spdk_bdev_destruct_done(struct spdk_bdev *bdev, int bdeverrno);
/**
 * Register a virtual bdev.
 *
 * This function is deprecated.  Users should call spdk_bdev_register instead.
 * The bdev layer currently makes no use of the base_bdevs array, so switching
 * to spdk_bdev_register results in no loss of functionality.
 *
 * \param vbdev Virtual bdev to register.
 * \param base_bdevs Array of bdevs upon which this vbdev is based.
 * \param base_bdev_count Number of bdevs in base_bdevs.
+2 −10
Original line number Diff line number Diff line
@@ -3758,16 +3758,8 @@ spdk_bdev_register(struct spdk_bdev *bdev)
int
spdk_vbdev_register(struct spdk_bdev *vbdev, struct spdk_bdev **base_bdevs, int base_bdev_count)
{
	int rc;

	rc = spdk_bdev_init(vbdev);
	if (rc) {
		return rc;
	}

	spdk_bdev_start(vbdev);
	spdk_notify_send("bdev_register", spdk_bdev_get_name(vbdev));
	return 0;
	SPDK_ERRLOG("This function is deprecated.  Use spdk_bdev_register() instead.\n");
	return spdk_bdev_register(vbdev);
}

void
+4 −4
Original line number Diff line number Diff line
@@ -1234,17 +1234,17 @@ vbdev_compress_claim(struct vbdev_compress *comp_bdev)
		goto error_claim;
	}

	rc = spdk_vbdev_register(&comp_bdev->comp_bdev, &comp_bdev->base_bdev, 1);
	rc = spdk_bdev_register(&comp_bdev->comp_bdev);
	if (rc < 0) {
		SPDK_ERRLOG("trying to register vbdev\n");
		goto error_vbdev_register;
		SPDK_ERRLOG("trying to register bdev\n");
		goto error_bdev_register;
	}

	SPDK_NOTICELOG("registered io_device and virtual bdev for: %s\n", comp_bdev->comp_bdev.name);

	return;
	/* Error cleanup paths. */
error_vbdev_register:
error_bdev_register:
	spdk_bdev_module_release_bdev(comp_bdev->base_bdev);
error_claim:
	TAILQ_REMOVE(&g_vbdev_comp, comp_bdev, link);
+4 −4
Original line number Diff line number Diff line
@@ -1605,11 +1605,11 @@ vbdev_crypto_claim(struct spdk_bdev *bdev)
			goto error_session_init;
		}

		rc = spdk_vbdev_register(&vbdev->crypto_bdev, &vbdev->base_bdev, 1);
		rc = spdk_bdev_register(&vbdev->crypto_bdev);
		if (rc < 0) {
			SPDK_ERRLOG("ERROR trying to register vbdev\n");
			SPDK_ERRLOG("ERROR trying to register bdev\n");
			rc = -EINVAL;
			goto error_vbdev_register;
			goto error_bdev_register;
		}
		SPDK_DEBUGLOG(SPDK_LOG_VBDEV_crypto, "registered io_device and virtual bdev for: %s\n",
			      name->vbdev_name);
@@ -1619,7 +1619,7 @@ vbdev_crypto_claim(struct spdk_bdev *bdev)
	return rc;

	/* Error cleanup paths. */
error_vbdev_register:
error_bdev_register:
error_session_init:
	rte_cryptodev_sym_session_free(vbdev->session_decrypt);
error_session_de_create:
Loading