mirror of https://gitee.com/openkylin/qemu.git
raw/linux-aio: Also initialize POSIX AIO
When using Linux AIO raw still falls back to POSIX AIO sometimes, so we should initialize it. Not initializing it happens to work if POSIX AIO is used by another drive, or if the format is not specified (probing the format uses POSIX AIO) or by pure luck (e.g. it doesn't seem to happen any more with qcow2 since we have re-added synchronous qcow2 functions). Signed-off-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
c5baaa489f
commit
d2e4634504
|
@ -173,6 +173,10 @@ static int raw_open_common(BlockDriverState *bs, const char *filename,
|
||||||
#ifdef CONFIG_LINUX_AIO
|
#ifdef CONFIG_LINUX_AIO
|
||||||
if ((bdrv_flags & (BDRV_O_NOCACHE|BDRV_O_NATIVE_AIO)) ==
|
if ((bdrv_flags & (BDRV_O_NOCACHE|BDRV_O_NATIVE_AIO)) ==
|
||||||
(BDRV_O_NOCACHE|BDRV_O_NATIVE_AIO)) {
|
(BDRV_O_NOCACHE|BDRV_O_NATIVE_AIO)) {
|
||||||
|
|
||||||
|
/* We're falling back to POSIX AIO in some cases */
|
||||||
|
paio_init();
|
||||||
|
|
||||||
s->aio_ctx = laio_init();
|
s->aio_ctx = laio_init();
|
||||||
if (!s->aio_ctx) {
|
if (!s->aio_ctx) {
|
||||||
goto out_free_buf;
|
goto out_free_buf;
|
||||||
|
|
Loading…
Reference in New Issue