nvme: simplify plug/unplug
bdrv_io_plug/bdrv_io_unplug take care of keeping a nesting count, so change s->plugged to just a bool. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20180813144320.12382-2-pbonzini@redhat.com> Signed-off-by: Fam Zheng <famz@redhat.com>
This commit is contained in:
parent
9582f357bb
commit
2f0d8947a6
20
block/nvme.c
20
block/nvme.c
@ -104,7 +104,7 @@ typedef struct {
|
|||||||
uint64_t nsze; /* Namespace size reported by identify command */
|
uint64_t nsze; /* Namespace size reported by identify command */
|
||||||
int nsid; /* The namespace id to read/write data. */
|
int nsid; /* The namespace id to read/write data. */
|
||||||
uint64_t max_transfer;
|
uint64_t max_transfer;
|
||||||
int plugged;
|
bool plugged;
|
||||||
|
|
||||||
CoMutex dma_map_lock;
|
CoMutex dma_map_lock;
|
||||||
CoQueue dma_flush_queue;
|
CoQueue dma_flush_queue;
|
||||||
@ -1101,7 +1101,8 @@ static void nvme_attach_aio_context(BlockDriverState *bs,
|
|||||||
static void nvme_aio_plug(BlockDriverState *bs)
|
static void nvme_aio_plug(BlockDriverState *bs)
|
||||||
{
|
{
|
||||||
BDRVNVMeState *s = bs->opaque;
|
BDRVNVMeState *s = bs->opaque;
|
||||||
s->plugged++;
|
assert(!s->plugged);
|
||||||
|
s->plugged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void nvme_aio_unplug(BlockDriverState *bs)
|
static void nvme_aio_unplug(BlockDriverState *bs)
|
||||||
@ -1109,14 +1110,13 @@ static void nvme_aio_unplug(BlockDriverState *bs)
|
|||||||
int i;
|
int i;
|
||||||
BDRVNVMeState *s = bs->opaque;
|
BDRVNVMeState *s = bs->opaque;
|
||||||
assert(s->plugged);
|
assert(s->plugged);
|
||||||
if (!--s->plugged) {
|
s->plugged = false;
|
||||||
for (i = 1; i < s->nr_queues; i++) {
|
for (i = 1; i < s->nr_queues; i++) {
|
||||||
NVMeQueuePair *q = s->queues[i];
|
NVMeQueuePair *q = s->queues[i];
|
||||||
qemu_mutex_lock(&q->lock);
|
qemu_mutex_lock(&q->lock);
|
||||||
nvme_kick(s, q);
|
nvme_kick(s, q);
|
||||||
nvme_process_completion(s, q);
|
nvme_process_completion(s, q);
|
||||||
qemu_mutex_unlock(&q->lock);
|
qemu_mutex_unlock(&q->lock);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user