diff mbox

[RFC,4/9] block: keep bitmap if incremental backup job is cancelled

Message ID 1434103761-29871-5-git-send-email-stefanha@redhat.com
State New
Headers show

Commit Message

Stefan Hajnoczi June 12, 2015, 10:09 a.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.

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

Comments

John Snow June 12, 2015, 10:39 p.m. UTC | #1
On 06/12/2015 06:09 AM, 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.
> 
> 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);
> 

Reviewed-by: John Snow <jsnow@redhat.com>
Stefan Hajnoczi June 15, 2015, 2:48 p.m. UTC | #2
On Fri, Jun 12, 2015 at 06:39:19PM -0400, John Snow wrote:
> 
> 
> On 06/12/2015 06:09 AM, 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.
> > 
> > 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);
> > 
> 
> Reviewed-by: John Snow <jsnow@redhat.com>

Thanks, I'll send this patch separately and CC qemu-stable.
Max Reitz June 24, 2015, 5:35 p.m. UTC | #3
On 12.06.2015 12:09, 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.
>
> 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);

Since I can't find a seperate patch on qemu-devel or qemu-block yet:

Reviewed-by: Max Reitz <mreitz@redhat.com>
Stefan Hajnoczi June 25, 2015, 12:51 p.m. UTC | #4
On Wed, Jun 24, 2015 at 07:35:05PM +0200, Max Reitz wrote:
> On 12.06.2015 12:09, 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.
> >
> >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);
> 
> Since I can't find a seperate patch on qemu-devel or qemu-block yet:
> 
> Reviewed-by: Max Reitz <mreitz@redhat.com>

Thanks, I must have gotten distracted before sending the email.
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);