From: Haomai Wang Date: Tue, 5 Jan 2016 18:53:10 +0000 (+0800) Subject: NVMEDevice: reorder signal in case of signaled thread modify IOContext X-Git-Tag: v10.0.4~81^2~31 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=39c131816b4e1b639cba7a0abcf385e9abce1b4c;p=ceph.git NVMEDevice: reorder signal in case of signaled thread modify IOContext Signed-off-by: Haomai Wang --- diff --git a/src/os/bluestore/NVMEDevice.cc b/src/os/bluestore/NVMEDevice.cc index ab83fcb1d358..8731c3fc16bc 100644 --- a/src/os/bluestore/NVMEDevice.cc +++ b/src/os/bluestore/NVMEDevice.cc @@ -53,13 +53,12 @@ static void io_complete(void *t, const struct nvme_completion *completion) { dout(20) << __func__ << " write op successfully, left " << left << dendl; if (!left) { ctx->backend_priv = nullptr; + if (ctx->priv) + task->device->aio_callback(task->device->aio_callback_priv, ctx->priv); if (ctx->num_waiting.read()) { Mutex::Locker l(ctx->lock); ctx->cond.Signal(); } - if (ctx->priv) { - task->device->aio_callback(task->device->aio_callback_priv, ctx->priv); - } } rte_free(task->buf); rte_mempool_put(task_pool, task);