]> git.proxmox.com Git - mirror_qemu.git/commitdiff
block: make .bdrv_close optional
authorVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Tue, 14 Aug 2018 12:43:19 +0000 (15:43 +0300)
committerKevin Wolf <kwolf@redhat.com>
Wed, 15 Aug 2018 10:50:39 +0000 (12:50 +0200)
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block.c
block/snapshot.c

diff --git a/block.c b/block.c
index 39f373e03500398458c62e80e584c46a14494abe..9694018a6868bbd20a24d08e830f55ea41bbbfc4 100644 (file)
--- a/block.c
+++ b/block.c
@@ -3349,7 +3349,9 @@ static void bdrv_close(BlockDriverState *bs)
     bdrv_drain(bs); /* in case flush left pending I/O */
 
     if (bs->drv) {
-        bs->drv->bdrv_close(bs);
+        if (bs->drv->bdrv_close) {
+            bs->drv->bdrv_close(bs);
+        }
         bs->drv = NULL;
     }
 
index f9903bc94e15b17a6d099b290b8546271a94bda2..3218a542df833170b4da85f91c726131651d6894 100644 (file)
@@ -218,7 +218,9 @@ int bdrv_snapshot_goto(BlockDriverState *bs,
         qobject_unref(file_options);
         qdict_put_str(options, "file", bdrv_get_node_name(file));
 
-        drv->bdrv_close(bs);
+        if (drv->bdrv_close) {
+            drv->bdrv_close(bs);
+        }
         bdrv_unref_child(bs, bs->file);
         bs->file = NULL;