aboutsummaryrefslogtreecommitdiff
path: root/block/raw-aio.h
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2013-01-14 16:26:55 +0100
committerStefan Hajnoczi <stefanha@redhat.com>2013-01-15 10:03:47 +0100
commit8238010b265886249f9f3d45e890788319b7736e (patch)
treeb526fdc8a5ec57a5986d2cd64bf0f4217a9f3391 /block/raw-aio.h
parentfcd9d4555252c47a337357dfce0806e5dde99d96 (diff)
downloadqemu-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.h5
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 */