summaryrefslogtreecommitdiffstats
path: root/include/block
diff options
context:
space:
mode:
authorFam Zheng <famz@redhat.com>2015-11-09 18:16:54 +0800
committerKevin Wolf <kwolf@redhat.com>2015-11-12 16:22:43 +0100
commitdf9a681dc9ad41c9cdeb9ecc5d060ba9abd27e01 (patch)
tree03ea275a3bcf5089ffaa04b205de50b009734a5e /include/block
parent67da1dc5ce696c7b309b1db100da7d94292847b7 (diff)
downloadhqemu-df9a681dc9ad41c9cdeb9ecc5d060ba9abd27e01.zip
hqemu-df9a681dc9ad41c9cdeb9ecc5d060ba9abd27e01.tar.gz
qed: Implement .bdrv_drain
The "need_check_timer" is used to clear the "NEED_CHECK" flag in the image header after a grace period once metadata update has finished. In compliance to the bdrv_drain semantics we should make sure it remains deleted once .bdrv_drain is called. We cannot reuse qed_need_check_timer_cb because here it doesn't satisfy the assertion. Do the "plug" and "flush" calls manually. Signed-off-by: Fam Zheng <famz@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Message-id: 1447064214-29930-10-git-send-email-famz@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'include/block')
-rw-r--r--include/block/block.h1
-rw-r--r--include/block/block_int.h3
2 files changed, 3 insertions, 1 deletions
diff --git a/include/block/block.h b/include/block/block.h
index c8b40b7..92f6f6a 100644
--- a/include/block/block.h
+++ b/include/block/block.h
@@ -501,7 +501,6 @@ void bdrv_set_dirty_bitmap(BdrvDirtyBitmap *bitmap,
int64_t cur_sector, int nr_sectors);
void bdrv_reset_dirty_bitmap(BdrvDirtyBitmap *bitmap,
int64_t cur_sector, int nr_sectors);
-void bdrv_clear_dirty_bitmap(BdrvDirtyBitmap *bitmap);
void bdrv_dirty_iter_init(BdrvDirtyBitmap *bitmap, struct HBitmapIter *hbi);
void bdrv_set_dirty_iter(struct HBitmapIter *hbi, int64_t offset);
int64_t bdrv_get_dirty_count(BdrvDirtyBitmap *bitmap);
diff --git a/include/block/block_int.h b/include/block/block_int.h
index 3a24913..695393e 100644
--- a/include/block/block_int.h
+++ b/include/block/block_int.h
@@ -693,4 +693,7 @@ void blk_dev_resize_cb(BlockBackend *blk);
void bdrv_set_dirty(BlockDriverState *bs, int64_t cur_sector, int nr_sectors);
bool bdrv_requests_pending(BlockDriverState *bs);
+void bdrv_clear_dirty_bitmap(BdrvDirtyBitmap *bitmap, HBitmap **out);
+void bdrv_undo_clear_dirty_bitmap(BdrvDirtyBitmap *bitmap, HBitmap *in);
+
#endif /* BLOCK_INT_H */
OpenPOWER on IntegriCloud