From: Christoph Hellwig Date: Fri, 4 Sep 2009 17:02:06 +0000 (+0200) Subject: ide: use bdrv_aio_flush X-Git-Url: http://git.maemo.org/git/?a=commitdiff_plain;h=b0484ae464dcd8ee7439c4257b2f40d6b0e007dd;p=qemu ide: use bdrv_aio_flush Signed-off-by: Christoph Hellwig Signed-off-by: Anthony Liguori --- diff --git a/hw/ide/core.c b/hw/ide/core.c index 6fd6dc2..87d5cdf 100644 --- a/hw/ide/core.c +++ b/hw/ide/core.c @@ -771,6 +771,16 @@ static void ide_atapi_cmd_check_status(IDEState *s) ide_set_irq(s->bus); } +static void ide_flush_cb(void *opaque, int ret) +{ + IDEState *s = opaque; + + /* XXX: how do we signal I/O errors here? */ + + s->status = READY_STAT | SEEK_STAT; + ide_set_irq(s->bus); +} + static inline void cpu_to_ube16(uint8_t *buf, int val) { buf[0] = val >> 8; @@ -1969,9 +1979,9 @@ void ide_ioport_write(void *opaque, uint32_t addr, uint32_t val) case WIN_FLUSH_CACHE: case WIN_FLUSH_CACHE_EXT: if (s->bs) - bdrv_flush(s->bs); - s->status = READY_STAT | SEEK_STAT; - ide_set_irq(s->bus); + bdrv_aio_flush(s->bs, ide_flush_cb, s); + else + ide_flush_cb(s, 0); break; case WIN_STANDBY: case WIN_STANDBY2: