diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2013-01-14 16:26:55 +0100 |
---|---|---|
committer | Stefan Hajnoczi <stefanha@redhat.com> | 2013-01-15 10:03:47 +0100 |
commit | 8238010b265886249f9f3d45e890788319b7736e (patch) | |
tree | b526fdc8a5ec57a5986d2cd64bf0f4217a9f3391 /block/raw-aio.h | |
parent | fcd9d4555252c47a337357dfce0806e5dde99d96 (diff) | |
download | qemu-8238010b265886249f9f3d45e890788319b7736e.zip qemu-8238010b265886249f9f3d45e890788319b7736e.tar.gz qemu-8238010b265886249f9f3d45e890788319b7736e.tar.bz2 |
block: make discard asynchronous
This is easy with the thread pool, because we can use s->is_xfs and
s->has_discard from the worker function.
QEMU has a widespread assumption that each I/O operation writes less
than 2^32 bytes. This patch doesn't fix it throughout of course,
but it starts correcting struct RawPosixAIOData so that there is
no regression with respect to the synchronous discard implementation.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'block/raw-aio.h')
-rw-r--r-- | block/raw-aio.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/block/raw-aio.h b/block/raw-aio.h index e77f361..c61f159 100644 --- a/block/raw-aio.h +++ b/block/raw-aio.h @@ -20,11 +20,14 @@ #define QEMU_AIO_WRITE 0x0002 #define QEMU_AIO_IOCTL 0x0004 #define QEMU_AIO_FLUSH 0x0008 +#define QEMU_AIO_DISCARD 0x0010 #define QEMU_AIO_TYPE_MASK \ - (QEMU_AIO_READ|QEMU_AIO_WRITE|QEMU_AIO_IOCTL|QEMU_AIO_FLUSH) + (QEMU_AIO_READ|QEMU_AIO_WRITE|QEMU_AIO_IOCTL|QEMU_AIO_FLUSH| \ + QEMU_AIO_DISCARD) /* AIO flags */ #define QEMU_AIO_MISALIGNED 0x1000 +#define QEMU_AIO_BLKDEV 0x2000 /* linux-aio.c - Linux native implementation */ |