]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
block/stream: Swap backing file change order
authorMax Reitz <mreitz@redhat.com>
Wed, 3 Jul 2019 17:28:04 +0000 (19:28 +0200)
committerMax Reitz <mreitz@redhat.com>
Mon, 15 Jul 2019 13:48:40 +0000 (15:48 +0200)
bdrv_change_backing_file() can result in yields.  Therefore, @base may
no longer be the the backing_bs() of s->bottom afterwards.

Just swap the order of the two calls to fix this.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-id: 20190703172813.6868-4-mreitz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
block/stream.c

index b27e61625d92e760dc6af7715cb850d714d30e10..6ac1e7bec42cd9d31000eca65cd17229328c78ad 100644 (file)
@@ -78,8 +78,8 @@ static int stream_prepare(Job *job)
                 base_fmt = base->drv->format_name;
             }
         }
-        ret = bdrv_change_backing_file(bs, base_id, base_fmt);
         bdrv_set_backing_hd(bs, base, &local_err);
+        ret = bdrv_change_backing_file(bs, base_id, base_fmt);
         if (local_err) {
             error_report_err(local_err);
             return -EPERM;