block: assert no image modification under BDRV_O_INACTIVE
authorDenis V. Lunev <den@openvz.org>
Wed, 5 Apr 2017 15:18:25 +0000 (18:18 +0300)
committerMax Reitz <mreitz@redhat.com>
Fri, 28 Apr 2017 14:02:03 +0000 (16:02 +0200)
As long as BDRV_O_INACTIVE is set, the image file is only opened so we
have a file descriptor for it. We're definitely not supposed to modify
the image, it's still owned by the migration source.

This commit is an addition to 09e0c771 but the assert() is added to
bdrv_truncate().

Signed-off-by: Denis V. Lunev <den@openvz.org>
CC: Kevin Wolf <kwolf@redhat.com>
CC: Max Reitz <mreitz@redhat.com>
Message-id: 1491405505-31620-3-git-send-email-den@openvz.org
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
block.c

diff --git a/block.c b/block.c
index 76bf00f4b20af9f3d62c2ceae04b45d33edc54a2..6c6bb3ec7af88ef111f6c2a8cdb4efb11f20657d 100644 (file)
--- a/block.c
+++ b/block.c
@@ -3328,6 +3328,8 @@ int bdrv_truncate(BdrvChild *child, int64_t offset, Error **errp)
         return -EACCES;
     }
 
+    assert(!(bs->open_flags & BDRV_O_INACTIVE));
+
     ret = drv->bdrv_truncate(bs, offset, errp);
     if (ret == 0) {
         ret = refresh_total_sectors(bs, offset >> BDRV_SECTOR_BITS);