Message ID | 20170626225920.GA11700@ssaleem-MOBL4.amr.corp.intel.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
diff --git a/drivers/nvme/target/rdma.c b/drivers/nvme/target/rdma.c index 9e45cde..d0fb307 100644 --- a/drivers/nvme/target/rdma.c +++ b/drivers/nvme/target/rdma.c @@ -1349,6 +1349,12 @@ static int nvmet_rdma_device_removal(struct rdma_cm_id *cm_id, spin_lock_irqsave(&queue->state_lock, flags); if (queue->state != NVMET_RDMA_Q_DISCONNECTING) queue->state = NVMET_RDMA_IN_DEVICE_REMOVAL; + else { + /*queue is disconnecting; so cm_id and queues will be destroyed*/ + spin_unlock_irqrestore(&queue->state_lock, flags); + return 0; + } + spin_unlock_irqrestore(&queue->state_lock, flags); nvmet_rdma_queue_disconnect(queue); flush_scheduled_work();