Commit 941ca7e0 authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Tomasz Zawadzki
Browse files

bdev: Factor out bdev close operation from spdk_bdev_close()



Bdev open/close will be done for each bdev when traversing the bdev
list. This patch is a preparation.

Signed-off-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I2486bd823953fe020ed6106844877e1cf49d8a0d
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12126


Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent b4bcf772
Loading
Loading
Loading
Loading
+19 −11
Original line number Diff line number Diff line
@@ -6475,20 +6475,11 @@ spdk_bdev_open_ext(const char *bdev_name, bool write, spdk_bdev_event_cb_t event
	return rc;
}

void
spdk_bdev_close(struct spdk_bdev_desc *desc)
static void
bdev_close(struct spdk_bdev *bdev, struct spdk_bdev_desc *desc)
{
	struct spdk_bdev *bdev = spdk_bdev_desc_get_bdev(desc);
	int rc;

	SPDK_DEBUGLOG(bdev, "Closing descriptor %p for bdev %s on thread %p\n", desc, bdev->name,
		      spdk_get_thread());

	assert(desc->thread == spdk_get_thread());

	spdk_poller_unregister(&desc->io_timeout_poller);

	pthread_mutex_lock(&g_bdev_mgr.mutex);
	pthread_mutex_lock(&bdev->internal.mutex);
	pthread_mutex_lock(&desc->mutex);

@@ -6528,6 +6519,23 @@ spdk_bdev_close(struct spdk_bdev_desc *desc)
	} else {
		pthread_mutex_unlock(&bdev->internal.mutex);
	}
}

void
spdk_bdev_close(struct spdk_bdev_desc *desc)
{
	struct spdk_bdev *bdev = spdk_bdev_desc_get_bdev(desc);

	SPDK_DEBUGLOG(bdev, "Closing descriptor %p for bdev %s on thread %p\n", desc, bdev->name,
		      spdk_get_thread());

	assert(desc->thread == spdk_get_thread());

	spdk_poller_unregister(&desc->io_timeout_poller);

	pthread_mutex_lock(&g_bdev_mgr.mutex);

	bdev_close(bdev, desc);

	pthread_mutex_unlock(&g_bdev_mgr.mutex);
}