nvme: add new member initialized for nvme_driver struct

Change-Id: I8db8225bff2f11998b58df7987bff3d53e206b4a
Signed-off-by: GangCao <gang.cao@intel.com>
This commit is contained in:
GangCao 2016-11-03 16:36:24 -04:00 committed by Jim Harris
parent 396c32c48f
commit ac99f2fbc5
2 changed files with 12 additions and 2 deletions

View File

@ -38,6 +38,7 @@ struct nvme_driver _g_nvme_driver = {
.init_ctrlrs = TAILQ_HEAD_INITIALIZER(_g_nvme_driver.init_ctrlrs),
.attached_ctrlrs = TAILQ_HEAD_INITIALIZER(_g_nvme_driver.attached_ctrlrs),
.request_mempool = NULL,
.initialized = false,
};
struct nvme_driver *g_spdk_nvme_driver = &_g_nvme_driver;
@ -277,6 +278,12 @@ spdk_nvme_probe(void *cb_ctx, spdk_nvme_probe_cb probe_cb, spdk_nvme_attach_cb a
struct nvme_enum_ctx enum_ctx;
struct spdk_nvme_ctrlr *ctrlr, *ctrlr_tmp;
if (!spdk_process_is_primary()) {
while (g_spdk_nvme_driver->initialized == false) {
usleep(200 * 1000);
}
}
pthread_mutex_lock(&g_spdk_nvme_driver->lock);
if (g_spdk_nvme_driver->request_mempool == NULL) {
@ -349,6 +356,8 @@ spdk_nvme_probe(void *cb_ctx, spdk_nvme_probe_cb probe_cb, spdk_nvme_attach_cb a
}
}
g_spdk_nvme_driver->initialized = true;
pthread_mutex_unlock(&g_spdk_nvme_driver->lock);
return rc;
}

View File

@ -402,10 +402,11 @@ struct spdk_nvme_ctrlr {
};
struct nvme_driver {
pthread_mutex_t lock;
pthread_mutex_t lock;
TAILQ_HEAD(, spdk_nvme_ctrlr) init_ctrlrs;
TAILQ_HEAD(, spdk_nvme_ctrlr) attached_ctrlrs;
struct spdk_mempool *request_mempool;
struct spdk_mempool *request_mempool;
bool initialized;
};
extern struct nvme_driver *g_spdk_nvme_driver;