diff mbox

[2/2] block: track dirty flag status in qed

Message ID 1325322388-4825-2-git-send-email-wdongxu@linux.vnet.ibm.com
State New
Headers show

Commit Message

Robert Wang Dec. 31, 2011, 9:06 a.m. UTC
From: Dong Xu Wang <wdongxu@linux.vnet.ibm.com>

qed driver use QED_F_NEED_CHECK to mark if the image is clean.

CC: Kevin Wolf <kwolf@redhat.com>
CC: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Dong Xu Wang <wdongxu@linux.vnet.ibm.com>
---
 block/qed.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

Comments

Stefan Hajnoczi Jan. 11, 2012, 2:38 p.m. UTC | #1
On Sat, Dec 31, 2011 at 9:06 AM, Dong Xu Wang
<wdongxu@linux.vnet.ibm.com> wrote:
> +static int bdrv_qed_is_dirty(BlockDriverState *bs)
> +{
> +    BDRVQEDState *s = bs->opaque;
> +    return s->header.features & QED_F_NEED_CHECK;
> +}

Looks good.

Note that the image will be checked and then QED_F_NEED_CHECK is
cleared when the image is opened for read/write.  So the flag is only
reported if the image was opened read-only, or if we're writing to the
image and it allocated new clusters recently.

Stefan
diff mbox

Patch

diff --git a/block/qed.c b/block/qed.c
index 8da3ebe..1e909b1 100644
--- a/block/qed.c
+++ b/block/qed.c
@@ -1429,6 +1429,12 @@  static int bdrv_qed_check(BlockDriverState *bs, BdrvCheckResult *result)
     return qed_check(s, result, false);
 }
 
+static int bdrv_qed_is_dirty(BlockDriverState *bs)
+{
+    BDRVQEDState *s = bs->opaque;
+    return s->header.features & QED_F_NEED_CHECK;
+}
+
 static QEMUOptionParameter qed_create_options[] = {
     {
         .name = BLOCK_OPT_SIZE,
@@ -1474,6 +1480,7 @@  static BlockDriver bdrv_qed = {
     .bdrv_get_info            = bdrv_qed_get_info,
     .bdrv_change_backing_file = bdrv_qed_change_backing_file,
     .bdrv_check               = bdrv_qed_check,
+    .bdrv_is_dirty            = bdrv_qed_is_dirty,
 };
 
 static void bdrv_qed_init(void)