Commit 86947c89 authored by Seth Howell's avatar Seth Howell Committed by Ben Walker
Browse files

bdev: encapsulate private members of spdk_bdev



Change-Id: Ica5abcfe5f9b73217e2d91c33c2cd418e061cf96
Signed-off-by: default avatarSeth Howell <seth.howell@intel.com>
Reviewed-on: https://review.gerrithub.io/416458


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
parent 7f86c35e
Loading
Loading
Loading
Loading
+36 −31
Original line number Diff line number Diff line
@@ -219,12 +219,6 @@ struct spdk_bdev {
	/** Number of blocks */
	uint64_t blockcnt;

	/** Quality of service parameters */
	struct spdk_bdev_qos *qos;

	/** True if the state of the QoS is being modified */
	bool qos_mod_in_progress;

	/** write cache enabled, not used at the moment */
	int write_cache;

@@ -254,6 +248,20 @@ struct spdk_bdev {
	/** function table for all LUN ops */
	const struct spdk_bdev_fn_table *fn_table;

	/** The array of virtual block devices built on top of this block device. */
	struct spdk_bdev **vbdevs;
	size_t vbdevs_cnt;

	/** Fields that are used internally by the bdev subsystem.  Bdev modules
	 *  must not read or write to these fields.
	 */
	struct __bdev_internal_fields {
		/** Quality of service parameters */
		struct spdk_bdev_qos *qos;

		/** True if the state of the QoS is being modified */
		bool qos_mod_in_progress;

		/** Mutex protecting claimed */
		pthread_mutex_t mutex;

@@ -264,11 +272,6 @@ struct spdk_bdev {
		struct spdk_bdev **base_bdevs;
		size_t base_bdevs_cnt;


	/** The array of virtual block devices built on top of this block device. */
	struct spdk_bdev **vbdevs;
	size_t vbdevs_cnt;

		/**
		 * Pointer to the module that has claimed this bdev for purposes of creating virtual
		 *  bdevs on top of it.  Set to NULL if the bdev has not been claimed.
@@ -288,6 +291,7 @@ struct spdk_bdev {

		/** points to a reset bdev_io if one is in progress. */
		struct spdk_bdev_io *reset_in_progress;
	} internal;
};

typedef void (*spdk_bdev_io_get_buf_cb)(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io);
@@ -350,7 +354,8 @@ struct spdk_bdev_io {
	/** It may be used by modules to put the bdev_io into its own list. */
	TAILQ_ENTRY(spdk_bdev_io) module_link;

	/** Fields that are used internally by the bdev subsystem.  Bdev modules
	/**
	 *  Fields that are used internally by the bdev subsystem.  Bdev modules
	 *  must not read or write to these fields.
	 */
	struct __bdev_io_internal_fields {
+121 −121

File changed.

Preview size limit exceeded, changes collapsed.

+1 −1
Original line number Diff line number Diff line
@@ -228,7 +228,7 @@ spdk_rpc_dump_bdev_info(struct spdk_json_write_ctx *w,
	spdk_json_write_uint64(w, spdk_bdev_get_qos_ios_per_sec(bdev));

	spdk_json_write_name(w, "claimed");
	spdk_json_write_bool(w, (bdev->claim_module != NULL));
	spdk_json_write_bool(w, (bdev->internal.claim_module != NULL));

	spdk_json_write_name(w, "supported_io_types");
	spdk_json_write_object_begin(w);
+5 −5
Original line number Diff line number Diff line
@@ -215,8 +215,8 @@ is_base_bdev(struct spdk_bdev *base, struct spdk_bdev *vbdev)
	size_t i;
	int found = 0;

	for (i = 0; i < vbdev->base_bdevs_cnt; i++) {
		found += vbdev->base_bdevs[i] == base;
	for (i = 0; i < vbdev->internal.base_bdevs_cnt; i++) {
		found += vbdev->internal.base_bdevs[i] == base;
	}

	CU_ASSERT(found <= 1);
@@ -250,7 +250,7 @@ allocate_bdev(char *name)

	rc = spdk_bdev_register(bdev);
	CU_ASSERT(rc == 0);
	CU_ASSERT(bdev->base_bdevs_cnt == 0);
	CU_ASSERT(bdev->internal.base_bdevs_cnt == 0);
	CU_ASSERT(bdev->vbdevs_cnt == 0);

	return bdev;
@@ -278,7 +278,7 @@ allocate_vbdev(char *name, struct spdk_bdev *base1, struct spdk_bdev *base2)

	rc = spdk_vbdev_register(bdev, array, base2 == NULL ? 1 : 2);
	CU_ASSERT(rc == 0);
	CU_ASSERT(bdev->base_bdevs_cnt > 0);
	CU_ASSERT(bdev->internal.base_bdevs_cnt > 0);
	CU_ASSERT(bdev->vbdevs_cnt == 0);

	CU_ASSERT(check_base_and_vbdev(base1, bdev) == true);
@@ -301,7 +301,7 @@ free_bdev(struct spdk_bdev *bdev)
static void
free_vbdev(struct spdk_bdev *bdev)
{
	CU_ASSERT(bdev->base_bdevs_cnt != 0);
	CU_ASSERT(bdev->internal.base_bdevs_cnt != 0);
	spdk_bdev_unregister(bdev, NULL, NULL);
	memset(bdev, 0xFF, sizeof(*bdev));
	free(bdev);
+26 −26

File changed.

Preview size limit exceeded, changes collapsed.