diff mbox

block: keep bitmap if incremental backup job is cancelled

Message ID 1434380534-7680-1-git-send-email-stefanha@redhat.com
State New
Headers show

Commit Message

Stefan Hajnoczi June 15, 2015, 3:02 p.m. UTC
Reclaim the dirty bitmap if an incremental backup block job is
cancelled.  The ret variable may be 0 when the job is cancelled so it's
not enough to check ret < 0.

Reviewed-by: John Snow <jsnow@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 block/backup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jeff Cody June 16, 2015, 4:09 a.m. UTC | #1
On Mon, Jun 15, 2015 at 04:02:14PM +0100, Stefan Hajnoczi wrote:
> Reclaim the dirty bitmap if an incremental backup block job is
> cancelled.  The ret variable may be 0 when the job is cancelled so it's
> not enough to check ret < 0.
> 
> Reviewed-by: John Snow <jsnow@redhat.com>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
>  block/backup.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/block/backup.c b/block/backup.c
> index d3f648d..c1ad975 100644
> --- a/block/backup.c
> +++ b/block/backup.c
> @@ -430,7 +430,7 @@ static void coroutine_fn backup_run(void *opaque)
>  
>      if (job->sync_bitmap) {
>          BdrvDirtyBitmap *bm;
> -        if (ret < 0) {
> +        if (ret < 0 || block_job_is_cancelled(&job->common)) {
>              /* Merge the successor back into the parent, delete nothing. */
>              bm = bdrv_reclaim_dirty_bitmap(bs, job->sync_bitmap, NULL);
>              assert(bm);
> -- 
> 2.4.3
>

Thanks, applied to my block tree:
https://github.com/codyprime/qemu-kvm-jtc/commits/block

Jeff
diff mbox

Patch

diff --git a/block/backup.c b/block/backup.c
index d3f648d..c1ad975 100644
--- a/block/backup.c
+++ b/block/backup.c
@@ -430,7 +430,7 @@  static void coroutine_fn backup_run(void *opaque)
 
     if (job->sync_bitmap) {
         BdrvDirtyBitmap *bm;
-        if (ret < 0) {
+        if (ret < 0 || block_job_is_cancelled(&job->common)) {
             /* Merge the successor back into the parent, delete nothing. */
             bm = bdrv_reclaim_dirty_bitmap(bs, job->sync_bitmap, NULL);
             assert(bm);