nvme/cuse: add spdk_nvme_cuse_update api
spdk_nvme_cuse_update_namespaces() API allows application to repopulate namespaces on NVMe CUSE devices. Change-Id: I5375b13bcc91b17cd26b4dc6f02d83dc33826542 Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com> Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/658 Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
This commit is contained in:
parent
482ca8eb60
commit
11aca20442
@ -3083,6 +3083,14 @@ int spdk_nvme_map_prps(void *prv, struct spdk_nvme_cmd *cmd, struct iovec *iovs,
|
|||||||
*/
|
*/
|
||||||
struct spdk_nvme_transport_poll_group;
|
struct spdk_nvme_transport_poll_group;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update and populate namespace CUSE devices (Experimental)
|
||||||
|
*
|
||||||
|
* \param ctrlr Opaque handle to the NVMe controller.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void spdk_nvme_cuse_update_namespaces(struct spdk_nvme_ctrlr *ctrlr);
|
||||||
|
|
||||||
struct nvme_request;
|
struct nvme_request;
|
||||||
|
|
||||||
struct spdk_nvme_transport;
|
struct spdk_nvme_transport;
|
||||||
|
@ -985,6 +985,24 @@ nvme_cuse_stop(struct spdk_nvme_ctrlr *ctrlr)
|
|||||||
pthread_mutex_unlock(&g_cuse_mtx);
|
pthread_mutex_unlock(&g_cuse_mtx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
nvme_cuse_update(struct spdk_nvme_ctrlr *ctrlr)
|
||||||
|
{
|
||||||
|
struct cuse_device *ctrlr_device;
|
||||||
|
|
||||||
|
pthread_mutex_lock(&g_cuse_mtx);
|
||||||
|
|
||||||
|
ctrlr_device = nvme_cuse_get_cuse_ctrlr_device(ctrlr);
|
||||||
|
if (!ctrlr_device) {
|
||||||
|
pthread_mutex_unlock(&g_cuse_mtx);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
cuse_nvme_ctrlr_update_namespaces(ctrlr_device);
|
||||||
|
|
||||||
|
pthread_mutex_unlock(&g_cuse_mtx);
|
||||||
|
}
|
||||||
|
|
||||||
static struct nvme_io_msg_producer cuse_nvme_io_msg_producer = {
|
static struct nvme_io_msg_producer cuse_nvme_io_msg_producer = {
|
||||||
.name = "cuse",
|
.name = "cuse",
|
||||||
.stop = nvme_cuse_stop,
|
.stop = nvme_cuse_stop,
|
||||||
@ -1035,6 +1053,12 @@ spdk_nvme_cuse_unregister(struct spdk_nvme_ctrlr *ctrlr)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
spdk_nvme_cuse_update_namespaces(struct spdk_nvme_ctrlr *ctrlr)
|
||||||
|
{
|
||||||
|
nvme_cuse_update(ctrlr);
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
spdk_nvme_cuse_get_ctrlr_name(struct spdk_nvme_ctrlr *ctrlr, char *name, size_t *size)
|
spdk_nvme_cuse_get_ctrlr_name(struct spdk_nvme_ctrlr *ctrlr, char *name, size_t *size)
|
||||||
{
|
{
|
||||||
|
@ -144,6 +144,7 @@
|
|||||||
spdk_nvme_cuse_get_ns_name;
|
spdk_nvme_cuse_get_ns_name;
|
||||||
spdk_nvme_cuse_register;
|
spdk_nvme_cuse_register;
|
||||||
spdk_nvme_cuse_unregister;
|
spdk_nvme_cuse_unregister;
|
||||||
|
spdk_nvme_cuse_update_namespaces;
|
||||||
|
|
||||||
spdk_nvme_map_prps;
|
spdk_nvme_map_prps;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user