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

bdev/nvme: Rename bdev_nvme_reset_rpc() to nvme_ctrlr_op_rpc()



Rename bdev_nvme_reset_rpc() to nvme_ctrlr_op_rpc() and change related
function pointers and variables accordingly to reuse these for other
operations.

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


Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarRichael <richael.zhuang@arm.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent d62441e3
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -1974,14 +1974,14 @@ _bdev_nvme_reset_complete(struct spdk_io_channel_iter *i, int status)
{
	struct nvme_ctrlr *nvme_ctrlr = spdk_io_channel_iter_get_io_device(i);
	bool success = spdk_io_channel_iter_get_ctx(i) == NULL;
	bdev_nvme_reset_cb reset_cb_fn = nvme_ctrlr->reset_cb_fn;
	void *reset_cb_arg = nvme_ctrlr->reset_cb_arg;
	bdev_nvme_ctrlr_op_cb ctrlr_op_cb_fn = nvme_ctrlr->ctrlr_op_cb_fn;
	void *ctrlr_op_cb_arg = nvme_ctrlr->ctrlr_op_cb_arg;
	enum bdev_nvme_op_after_reset op_after_reset;

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

	nvme_ctrlr->reset_cb_fn = NULL;
	nvme_ctrlr->reset_cb_arg = NULL;
	nvme_ctrlr->ctrlr_op_cb_fn = NULL;
	nvme_ctrlr->ctrlr_op_cb_arg = NULL;

	if (!success) {
		SPDK_ERRLOG("Resetting controller failed.\n");
@@ -1997,8 +1997,8 @@ _bdev_nvme_reset_complete(struct spdk_io_channel_iter *i, int status)
	op_after_reset = bdev_nvme_check_op_after_reset(nvme_ctrlr, success);
	pthread_mutex_unlock(&nvme_ctrlr->mutex);

	if (reset_cb_fn) {
		reset_cb_fn(reset_cb_arg, success ? 0 : -1);
	if (ctrlr_op_cb_fn) {
		ctrlr_op_cb_fn(ctrlr_op_cb_arg, success ? 0 : -1);
	}

	switch (op_after_reset) {
@@ -2285,14 +2285,14 @@ bdev_nvme_reset(struct nvme_ctrlr *nvme_ctrlr)
}

int
bdev_nvme_reset_rpc(struct nvme_ctrlr *nvme_ctrlr, bdev_nvme_reset_cb cb_fn, void *cb_arg)
nvme_ctrlr_op_rpc(struct nvme_ctrlr *nvme_ctrlr, bdev_nvme_ctrlr_op_cb cb_fn, void *cb_arg)
{
	int rc;

	rc = bdev_nvme_reset(nvme_ctrlr);
	if (rc == 0) {
		nvme_ctrlr->reset_cb_fn = cb_fn;
		nvme_ctrlr->reset_cb_arg = cb_arg;
		nvme_ctrlr->ctrlr_op_cb_fn = cb_fn;
		nvme_ctrlr->ctrlr_op_cb_arg = cb_arg;
	}
	return rc;
}
@@ -2392,10 +2392,10 @@ _bdev_nvme_reset_io(struct nvme_io_path *io_path, struct nvme_bdev_io *bio)
		assert(bio->io_path == NULL);
		bio->io_path = io_path;

		assert(nvme_ctrlr->reset_cb_fn == NULL);
		assert(nvme_ctrlr->reset_cb_arg == NULL);
		nvme_ctrlr->reset_cb_fn = bdev_nvme_reset_io_continue;
		nvme_ctrlr->reset_cb_arg = bio;
		assert(nvme_ctrlr->ctrlr_op_cb_fn == NULL);
		assert(nvme_ctrlr->ctrlr_op_cb_arg == NULL);
		nvme_ctrlr->ctrlr_op_cb_fn = bdev_nvme_reset_io_continue;
		nvme_ctrlr->ctrlr_op_cb_arg = bio;
	} else if (rc == -EBUSY) {
		ctrlr_ch = io_path->qpair->ctrlr_ch;
		assert(ctrlr_ch != NULL);
+8 −8
Original line number Diff line number Diff line
@@ -96,7 +96,7 @@ struct nvme_path_id {
	uint64_t				last_failed_tsc;
};

typedef void (*bdev_nvme_reset_cb)(void *cb_arg, int rc);
typedef void (*bdev_nvme_ctrlr_op_cb)(void *cb_arg, int rc);
typedef void (*nvme_ctrlr_disconnected_cb)(struct nvme_ctrlr *nvme_ctrlr);

struct nvme_ctrlr {
@@ -128,8 +128,8 @@ struct nvme_ctrlr {
	struct spdk_poller			*adminq_timer_poller;
	struct spdk_thread			*thread;

	bdev_nvme_reset_cb			reset_cb_fn;
	void					*reset_cb_arg;
	bdev_nvme_ctrlr_op_cb			ctrlr_op_cb_fn;
	void					*ctrlr_op_cb_arg;
	/* Poller used to check for reset/detach completion */
	struct spdk_poller			*reset_detach_poller;
	struct spdk_nvme_detach_ctx		*detach_ctx;
@@ -337,16 +337,16 @@ struct spdk_nvme_ctrlr *bdev_nvme_get_ctrlr(struct spdk_bdev *bdev);
int bdev_nvme_delete(const char *name, const struct nvme_path_id *path_id);

/**
 * Reset NVMe controller.
 * Operate NVMe controller for reset.
 *
 * \param nvme_ctrlr The specified NVMe controller to reset
 * \param cb_fn Function to be called back after reset completes
 * \param nvme_ctrlr The specified NVMe controller to operate
 * \param cb_fn Function to be called back after operation completes
 * \param cb_arg Argument for callback function
 * \return zero on success. Negated errno on the following error conditions:
 * -ENXIO: controller is being destroyed.
 * -EBUSY: controller is already being reset.
 * -EBUSY: controller is already being operated.
 */
int bdev_nvme_reset_rpc(struct nvme_ctrlr *nvme_ctrlr, bdev_nvme_reset_cb cb_fn, void *cb_arg);
int nvme_ctrlr_op_rpc(struct nvme_ctrlr *nvme_ctrlr, bdev_nvme_ctrlr_op_cb cb_fn, void *cb_arg);

typedef void (*bdev_nvme_set_preferred_path_cb)(void *cb_arg, int rc);

+1 −1
Original line number Diff line number Diff line
@@ -1343,7 +1343,7 @@ rpc_bdev_nvme_reset_controller(struct spdk_jsonrpc_request *request,
	ctx->request = request;
	ctx->orig_thread = spdk_get_thread();

	rc = bdev_nvme_reset_rpc(nvme_ctrlr, rpc_bdev_nvme_reset_controller_cb, ctx);
	rc = nvme_ctrlr_op_rpc(nvme_ctrlr, rpc_bdev_nvme_reset_controller_cb, ctx);
	if (rc != 0) {
		SPDK_NOTICELOG("Failed at bdev_nvme_reset_rpc\n");
		spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR, spdk_strerror(-rc));
+6 −6
Original line number Diff line number Diff line
@@ -1493,13 +1493,13 @@ test_reset_ctrlr(void)
	CU_ASSERT(rc == 0);

	detect_remove = false;
	nvme_ctrlr->reset_cb_fn = ut_check_hotplug_on_reset;
	nvme_ctrlr->reset_cb_arg = &detect_remove;
	nvme_ctrlr->ctrlr_op_cb_fn = ut_check_hotplug_on_reset;
	nvme_ctrlr->ctrlr_op_cb_arg = &detect_remove;

	poll_threads();

	CU_ASSERT(nvme_ctrlr->reset_cb_fn == NULL);
	CU_ASSERT(nvme_ctrlr->reset_cb_arg == NULL);
	CU_ASSERT(nvme_ctrlr->ctrlr_op_cb_fn == NULL);
	CU_ASSERT(nvme_ctrlr->ctrlr_op_cb_arg == NULL);
	CU_ASSERT(detect_remove == true);

	ctrlr.is_removed = false;
@@ -4073,7 +4073,7 @@ test_reset_bdev_ctrlr(void)
	bdev_nvme_submit_request(ch1, first_bdev_io);
	CU_ASSERT(first_bio->io_path == io_path11);
	CU_ASSERT(nvme_ctrlr1->resetting == true);
	CU_ASSERT(nvme_ctrlr1->reset_cb_arg == first_bio);
	CU_ASSERT(nvme_ctrlr1->ctrlr_op_cb_arg == first_bio);

	poll_thread_times(0, 3);
	CU_ASSERT(io_path11->qpair->qpair == NULL);
@@ -4175,7 +4175,7 @@ test_reset_bdev_ctrlr(void)
	bdev_nvme_submit_request(ch2, second_bdev_io);

	CU_ASSERT(nvme_ctrlr1->resetting == true);
	CU_ASSERT(nvme_ctrlr1->reset_cb_arg == first_bio);
	CU_ASSERT(nvme_ctrlr1->ctrlr_op_cb_arg == first_bio);
	CU_ASSERT(TAILQ_FIRST(&io_path21->qpair->ctrlr_ch->pending_resets) == second_bdev_io);

	poll_threads();