[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 02/22] block: acquire AioContext in bdrv_close_all()
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PATCH 02/22] block: acquire AioContext in bdrv_close_all() |
Date: |
Thu, 1 May 2014 16:54:26 +0200 |
bdrv_close_all() closes all BlockDriverState instances. It is called
from vl.c:main() and qemu-nbd when shutting down.
Some BlockDriverState instances may be running in another AioContext.
Make sure to acquire the AioContext before closing the BlockDriverState.
This will protect against race conditions once virtio-blk data-plane is
using the BlockDriverState from another AioContext event loop.
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
block.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/block.c b/block.c
index 94999e5..9381918 100644
--- a/block.c
+++ b/block.c
@@ -1755,7 +1755,11 @@ void bdrv_close_all(void)
BlockDriverState *bs;
QTAILQ_FOREACH(bs, &bdrv_states, device_list) {
+ AioContext *aio_context = bdrv_get_aio_context(bs);
+
+ aio_context_acquire(aio_context);
bdrv_close(bs);
+ aio_context_release(aio_context);
}
}
--
1.9.0
- [Qemu-devel] [PATCH 00/22] dataplane: use QEMU block layer, Stefan Hajnoczi, 2014/05/01
- [Qemu-devel] [PATCH 01/22] block: use BlockDriverState AioContext, Stefan Hajnoczi, 2014/05/01
- [Qemu-devel] [PATCH 02/22] block: acquire AioContext in bdrv_close_all(),
Stefan Hajnoczi <=
- [Qemu-devel] [PATCH 03/22] block: add bdrv_set_aio_context(), Stefan Hajnoczi, 2014/05/01
- [Qemu-devel] [PATCH 04/22] blkdebug: use BlockDriverState's AioContext, Stefan Hajnoczi, 2014/05/01
- [Qemu-devel] [PATCH 06/22] curl: implement .bdrv_detach/attach_aio_context(), Stefan Hajnoczi, 2014/05/01
- [Qemu-devel] [PATCH 07/22] gluster: use BlockDriverState's AioContext, Stefan Hajnoczi, 2014/05/01
- [Qemu-devel] [PATCH 05/22] blkverify: implement .bdrv_detach/attach_aio_context(), Stefan Hajnoczi, 2014/05/01
- [Qemu-devel] [PATCH 09/22] nbd: implement .bdrv_detach/attach_aio_context(), Stefan Hajnoczi, 2014/05/01