qemu/block
Stefan Hajnoczi 6f321e93ab qed: Periodically flush and clear need check bit
One strategy to limit the startup delay of consistency check when
opening image files is to ensure that the file is marked dirty for as
little time as possible.

QED currently marks the image dirty when the first allocating write
request is issued and clears the dirty bit again when the image is
cleanly closed.  In practice that means the image is marked dirty for
most of a guest's lifetime and prone to being in a dirty state upon
crash or power failure.

It is safe to clear the dirty bit after all allocating write requests
have completed and a flush has been performed.  This patch adds a timer
after the last allocating write request completes.  When the timer fires
it will flush and then clear the dirty bit.  The timer is set to 5
seconds and is cancelled upon arrival of a new allocating write request.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2011-05-18 14:38:46 +02:00
..
blkdebug.c block: Allow bdrv_flush to return errors 2010-11-04 12:52:16 +01:00
blkverify.c block: avoid a warning on 64 bit hosts with long as int64_t 2010-11-04 13:54:37 +01:00
bochs.c bochs: use qemu block API 2010-05-17 10:20:05 +02:00
cloop.c cloop: use qemu block API 2010-05-17 10:20:04 +02:00
cow.c block: Allow bdrv_flush to return errors 2010-11-04 12:52:16 +01:00
curl.c Fix %lld or %llx printf format use 2010-05-22 08:02:12 +00:00
dmg.c dmg: use qemu block API 2010-05-17 10:20:05 +02:00
nbd.c NBD: Avoid leaking a couple of strings when the NBD device is closed 2011-05-03 11:29:21 +02:00
parallels.c parallels: use qemu block API 2010-05-17 10:20:05 +02:00
qcow2-cache.c Reorganize struct Qcow2Cache for better struct packing 2011-01-31 10:03:00 +01:00
qcow2-cluster.c qcow2: Fix order in L2 table COW 2011-02-10 13:24:29 +01:00
qcow2-refcount.c Fix typos in comments and code (occured -> occurred and related) 2011-05-08 10:02:18 +01:00
qcow2-snapshot.c block/qcow2.c: rename qcow_ functions to qcow2_ 2010-12-17 16:15:01 +01:00
qcow2.c qcow2: Report error for version > 2 2011-02-10 13:23:56 +01:00
qcow2.h qcow2: Add bdrv_discard support 2011-01-31 10:03:00 +01:00
qcow.c block/qcow: Don't ignore immediate read/write and other failures 2011-03-15 13:21:14 +01:00
qed-check.c qed: Fix consistency check on 32-bit hosts 2011-04-27 16:21:00 +02:00
qed-cluster.c qed: Add support for zero clusters 2011-04-13 12:06:41 +02:00
qed-gencb.c qed: Table, L2 cache, and cluster functions 2010-12-17 16:11:04 +01:00
qed-l2-cache.c qed: Table, L2 cache, and cluster functions 2010-12-17 16:11:04 +01:00
qed-table.c qed: Table, L2 cache, and cluster functions 2010-12-17 16:11:04 +01:00
qed.c qed: Periodically flush and clear need check bit 2011-05-18 14:38:46 +02:00
qed.h qed: Periodically flush and clear need check bit 2011-05-18 14:38:46 +02:00
raw-posix-aio.h Remove aio_ctx from paio_* interface 2009-10-30 08:39:34 -05:00
raw-posix.c raw-posix: add discard support 2010-12-17 16:11:03 +01:00
raw-win32.c raw-win32: Fix bdrv_flush return value 2011-01-31 10:03:00 +01:00
raw.c block: add discard support 2010-12-17 16:11:03 +01:00
rbd_types.h ceph/rbd block driver for qemu-kvm 2010-12-14 15:44:21 +01:00
rbd.c ceph/rbd block driver for qemu-kvm 2010-12-14 15:44:21 +01:00
sheepdog.c Fix typo in code and comments 2011-05-06 08:19:25 +01:00
vdi.c Fix trivial "endianness bugs" 2011-04-03 21:42:57 +02:00
vmdk.c block: Remove unused s->hd in various drivers 2010-11-24 17:31:06 +01:00
vpc.c vpc.c: Use get_option_parameter() does the search 2011-04-13 12:31:41 +02:00
vvfat.c vvfat: fix a file descriptor leak 2011-01-12 19:48:58 +00:00