From a3392f9b100e6b63616922a8b30ad9643c62785a Mon Sep 17 00:00:00 2001 From: aliguori Date: Thu, 11 Sep 2008 18:00:19 +0000 Subject: [PATCH] Only build compatfd when using AIO and make sure to always init AIO OpenBSD doesn't use AIO so don't try to build compatfd when not using AIO. Also make sure to call qemu_aio_init() from bdrv_init. Everything that uses bdrv calls bdrv_init so it makes sense to init aio from there instead of in every single tool. Signed-off-by: Anthony Liguori git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5197 c046a42c-6fe2-441c-8c8c-71466251a162 --- Makefile | 6 +++++- Makefile.target | 6 +++++- block-raw-posix.c | 3 +++ block.c | 2 ++ configure | 1 + 5 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index e6769001a8b..708941cf420 100644 --- a/Makefile +++ b/Makefile @@ -177,7 +177,11 @@ QEMU_IMG_BLOCK_OBJS = $(BLOCK_OBJS) ifdef CONFIG_WIN32 QEMU_IMG_BLOCK_OBJS += qemu-img-block-raw-win32.o else -QEMU_IMG_BLOCK_OBJS += nbd.o qemu-img-block-raw-posix.o compatfd.o +QEMU_IMG_BLOCK_OBJS += nbd.o qemu-img-block-raw-posix.o +endif + +ifdef CONFIG_AIO +QEMU_IMG_BLOCK_OBJS += compatfd.o endif ###################################################################### diff --git a/Makefile.target b/Makefile.target index dd511ef9dfb..d02d896afea 100644 --- a/Makefile.target +++ b/Makefile.target @@ -476,7 +476,11 @@ OBJS=vl.o osdep.o monitor.o pci.o loader.o isa_mmio.o machine.o net-checksum.o ifdef CONFIG_WIN32 OBJS+=block-raw-win32.o else -OBJS+=block-raw-posix.o compatfd.o +OBJS+=block-raw-posix.o +endif + +ifdef CONFIG_AIO +OBJS+=compatfd.o endif LIBS+=-lz diff --git a/block-raw-posix.c b/block-raw-posix.c index 0587950c8f1..eaf3bf26957 100644 --- a/block-raw-posix.c +++ b/block-raw-posix.c @@ -561,6 +561,9 @@ void qemu_aio_wait(void) return; #endif + if (!first_aio) + return; + do { fd_set rdfds; diff --git a/block.c b/block.c index a6fd0b1c56c..e81df0a79bd 100644 --- a/block.c +++ b/block.c @@ -1328,6 +1328,8 @@ void bdrv_init(void) #ifndef _WIN32 bdrv_register(&bdrv_nbd); #endif + + qemu_aio_init(); } void *qemu_aio_get(BlockDriverState *bs, BlockDriverCompletionFunc *cb, diff --git a/configure b/configure index f1ee0af90db..1da42a1c3da 100755 --- a/configure +++ b/configure @@ -1220,6 +1220,7 @@ if test "$brlapi" = "yes" ; then fi if test "$aio" = "yes" ; then echo "#define CONFIG_AIO 1" >> $config_h + echo "CONFIG_AIO=yes" >> $config_mak fi # XXX: suppress that -- 2.39.5