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:
parent
57c99c9027
commit
5ba51e5016
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user