Commit df4de645 authored by Tomasz Zawadzki's avatar Tomasz Zawadzki Committed by Tomasz Zawadzki
Browse files

lib/nvme: copy nvme_ctrlr_update_namespaces() to nvme_cuse



This series will modify the nvme_ctrlr_update_namespaces() to become asynchronous.
The nvme_cuse.c will not be changed in similar way, so instead copy the current
version inline to nvme_cuse.

This allows to modify the nvme_ctrlr.c accordingly, while keeping existing
functionality in cuse as is.

Change-Id: Iec70e53378dadea9ef2b47e993575b5b24ab4596
Signed-off-by: default avatarTomasz Zawadzki <tomasz.zawadzki@nutanix.com>
Reviewed-on: https://review.spdk.io/c/spdk/spdk/+/26255


Reviewed-by: default avatarBen Walker <ben@nvidia.com>
Reviewed-by: default avatarJacek Kalwas <jacek.kalwas@nutanix.com>
Reviewed-by: default avatarJim Harris <jim.harris@nvidia.com>
Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK Automated Test System <spdkbot@gmail.com>
parent 8cf4b44b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -3201,7 +3201,7 @@ nvme_ctrlr_process_async_event_finish(struct spdk_nvme_ctrlr_aer_completion *asy
	spdk_free(async_event);
}

void
static void
nvme_ctrlr_update_namespaces(struct spdk_nvme_ctrlr *ctrlr)
{
	uint32_t nsid;
+13 −2
Original line number Diff line number Diff line
@@ -369,11 +369,22 @@ cuse_nvme_reset(fuse_req_t req, int cmd, void *arg,
}

static void
cuse_nvme_rescan_execute(struct spdk_nvme_ctrlr *ctrlr, uint32_t nsid, void *arg)
cuse_nvme_rescan_execute(struct spdk_nvme_ctrlr *ctrlr, uint32_t unused_nsid, void *arg)
{
	fuse_req_t req = arg;
	struct spdk_nvme_ns *ns;
	uint32_t nsid;

	for (nsid = spdk_nvme_ctrlr_get_first_active_ns(ctrlr);
	     nsid != 0; nsid = spdk_nvme_ctrlr_get_next_active_ns(ctrlr, nsid)) {
		ns = spdk_nvme_ctrlr_get_ns(ctrlr, nsid);
		if (ns == NULL) {
			continue;
		}
		/* Identify to namespace can fail, do not check return. */
		nvme_ns_construct(ns, nsid, ctrlr);
	}

	nvme_ctrlr_update_namespaces(ctrlr);
	fuse_reply_ioctl_iov(req, 0, NULL, 0);
}

+0 −1
Original line number Diff line number Diff line
@@ -1677,7 +1677,6 @@ const struct spdk_nvme_transport *nvme_get_transport(const char *transport_name)
const struct spdk_nvme_transport *nvme_get_first_transport(void);
const struct spdk_nvme_transport *nvme_get_next_transport(const struct spdk_nvme_transport
		*transport);
void  nvme_ctrlr_update_namespaces(struct spdk_nvme_ctrlr *ctrlr);

/* Transport specific functions */
struct spdk_nvme_ctrlr *nvme_transport_ctrlr_construct(const struct spdk_nvme_transport_id *trid,
+2 −1
Original line number Diff line number Diff line
@@ -89,7 +89,8 @@ DEFINE_STUB(nvme_io_msg_ctrlr_register, int,
DEFINE_STUB_V(nvme_io_msg_ctrlr_unregister,
	      (struct spdk_nvme_ctrlr *ctrlr, struct nvme_io_msg_producer *io_msg_producer));

DEFINE_STUB_V(nvme_ctrlr_update_namespaces, (struct spdk_nvme_ctrlr *ctrlr));
DEFINE_STUB(nvme_ns_construct, int,
	    (struct spdk_nvme_ns *ns, uint32_t id, struct spdk_nvme_ctrlr *ctrlr), 0);

static bool
wait_for_file(char *filename, bool exists)
+2 −1
Original line number Diff line number Diff line
@@ -55,7 +55,8 @@ DEFINE_STUB(spdk_nvme_ctrlr_is_active_ns, bool,
DEFINE_STUB(fuse_reply_err, int, (fuse_req_t req, int err), 0);
DEFINE_STUB(pthread_join, int, (pthread_t tid, void **val), 0);

DEFINE_STUB_V(nvme_ctrlr_update_namespaces, (struct spdk_nvme_ctrlr *ctrlr));
DEFINE_STUB(nvme_ns_construct, int,
	    (struct spdk_nvme_ns *ns, uint32_t id, struct spdk_nvme_ctrlr *ctrlr), 0);

DEFINE_STUB_V(fuse_session_reset, (struct fuse_session *session));