]> git.proxmox.com Git - mirror_qemu.git/commitdiff
block: Assertions for write permissions
authorKevin Wolf <kwolf@redhat.com>
Thu, 9 Feb 2017 15:49:53 +0000 (16:49 +0100)
committerKevin Wolf <kwolf@redhat.com>
Tue, 28 Feb 2017 19:47:50 +0000 (20:47 +0100)
This adds assertions that ensure that the necessary write permissions
have been granted before someone attempts to write to a node.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
block/io.c

index 2592ca1bd4c47c3eaf77ba7048085ecf12787465..4c797454a4ed8315306ee1e09628f38e3fd22a67 100644 (file)
@@ -945,6 +945,8 @@ static int coroutine_fn bdrv_co_do_copy_on_readv(BdrvChild *child,
     size_t skip_bytes;
     int ret;
 
+    assert(child->perm & (BLK_PERM_WRITE_UNCHANGED | BLK_PERM_WRITE));
+
     /* Cover entire cluster so no additional backing file I/O is required when
      * allocating cluster in the image file.
      */
@@ -1336,6 +1338,7 @@ static int coroutine_fn bdrv_aligned_pwritev(BdrvChild *child,
     assert(!waited || !req->serialising);
     assert(req->overlap_offset <= offset);
     assert(offset + bytes <= req->overlap_offset + req->overlap_bytes);
+    assert(child->perm & BLK_PERM_WRITE);
 
     ret = notifier_with_return_list_notify(&bs->before_write_notifiers, req);