nvme: init the recursive and shared ctrlr_lock for multi-process case

Change-Id: Id26f1da0b59045f000b9753e6b74a33dcab69197
Signed-off-by: GangCao <gang.cao@intel.com>
This commit is contained in:
GangCao 2016-10-16 23:26:55 -04:00 committed by Daniel Verkamp
parent 57c99c9027
commit 5ba51e5016
2 changed files with 5 additions and 3 deletions

View File

@ -920,8 +920,8 @@ nvme_ctrlr_start(struct spdk_nvme_ctrlr *ctrlr)
return 0;
}
static inline int
pthread_mutex_init_recursive(pthread_mutex_t *mtx)
int
nvme_mutex_init_recursive_shared(pthread_mutex_t *mtx)
{
pthread_mutexattr_t attr;
int rc = 0;
@ -930,6 +930,7 @@ pthread_mutex_init_recursive(pthread_mutex_t *mtx)
return -1;
}
if (pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE) ||
pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_SHARED) ||
pthread_mutex_init(mtx, &attr)) {
rc = -1;
}
@ -963,7 +964,7 @@ nvme_ctrlr_construct(struct spdk_nvme_ctrlr *ctrlr)
TAILQ_INIT(&ctrlr->active_io_qpairs);
pthread_mutex_init_recursive(&ctrlr->ctrlr_lock);
nvme_mutex_init_recursive_shared(&ctrlr->ctrlr_lock);
return 0;
}

View File

@ -602,6 +602,7 @@ bool nvme_intel_has_quirk(struct pci_id *id, uint64_t quirk);
void spdk_nvme_ctrlr_opts_set_defaults(struct spdk_nvme_ctrlr_opts *opts);
int nvme_mutex_init_shared(pthread_mutex_t *mtx);
int nvme_mutex_init_recursive_shared(pthread_mutex_t *mtx);
bool nvme_completion_is_retry(const struct spdk_nvme_cpl *cpl);
void nvme_qpair_print_command(struct spdk_nvme_qpair *qpair, struct spdk_nvme_cmd *cmd);