[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH V6 02/14] block: add bdrv_can_read_snapshot() functi
From: |
Wenchao Xia |
Subject: |
[Qemu-devel] [PATCH V6 02/14] block: add bdrv_can_read_snapshot() function |
Date: |
Mon, 18 Feb 2013 22:09:26 +0800 |
Compared to bdrv_can_snapshot(), this function return whether
bs* is ready to read snapshot info from instead of write. If yes,
caller can then query snapshot information, but taking snapshot
is not always possible for that *bs may be read only.
Signed-off-by: Wenchao Xia <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
---
block.c | 19 +++++++++++++++++++
include/block/block.h | 1 +
2 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/block.c b/block.c
index 50dab8e..19c2d7b 100644
--- a/block.c
+++ b/block.c
@@ -3058,6 +3058,25 @@ bool bdrv_debug_is_suspended(BlockDriverState *bs, const
char *tag)
/**************************************************************/
/* handling of snapshots */
+/* return whether internal snapshot can be read on @bs */
+bool bdrv_can_read_snapshot(BlockDriverState *bs)
+{
+ BlockDriver *drv = bs->drv;
+ if (!drv || !bdrv_is_inserted(bs)) {
+ return false;
+ }
+
+ if (!drv->bdrv_snapshot_create) {
+ if (bs->file != NULL) {
+ return bdrv_can_read_snapshot(bs->file);
+ }
+ return false;
+ }
+
+ return true;
+}
+
+/* return whether internal snapshot can be write on @bs */
int bdrv_can_snapshot(BlockDriverState *bs)
{
BlockDriver *drv = bs->drv;
diff --git a/include/block/block.h b/include/block/block.h
index 5c3b911..4c48052 100644
--- a/include/block/block.h
+++ b/include/block/block.h
@@ -321,6 +321,7 @@ void bdrv_get_full_backing_filename(BlockDriverState *bs,
char *dest, size_t sz);
BlockInfo *bdrv_query_info(BlockDriverState *s);
BlockStats *bdrv_query_stats(const BlockDriverState *bs);
+bool bdrv_can_read_snapshot(BlockDriverState *bs);
int bdrv_can_snapshot(BlockDriverState *bs);
int bdrv_is_snapshot(BlockDriverState *bs);
BlockDriverState *bdrv_snapshots(void);
--
1.7.1
- [Qemu-devel] [PATCH V6 00/14] add qmp/hmp interfaces for internal snapshot info, Wenchao Xia, 2013/02/18
- [Qemu-devel] [PATCH V6 01/14] qemu-img: remove unused parameter in collect_image_info(), Wenchao Xia, 2013/02/18
- [Qemu-devel] [PATCH V6 02/14] block: add bdrv_can_read_snapshot() function,
Wenchao Xia <=
- [Qemu-devel] [PATCH V6 03/14] block: return bool for bdrv_can_snapshot(), Wenchao Xia, 2013/02/18
- [Qemu-devel] [PATCH V6 07/14] block: rename bdrv_query_info() to bdrv_query_block_info(), Wenchao Xia, 2013/02/18
- [Qemu-devel] [PATCH V6 06/14] block: add image info query function bdrv_query_image_info(), Wenchao Xia, 2013/02/18
- [Qemu-devel] [PATCH V6 04/14] block: move collect_snapshots() and collect_image_info() to block.c, Wenchao Xia, 2013/02/18