diff options
author | Kevin Wolf | 2016-12-20 16:52:41 +0100 |
---|---|---|
committer | Kevin Wolf | 2017-02-28 20:40:35 +0100 |
commit | 7006c9a76119a863e5812de572841618b9540ac2 (patch) | |
tree | 2ac1f0f472a6df05cfc1b2b86d0ac54d954c1856 /include/block | |
parent | option: Tweak invalid size error message and unbreak iotest 049 (diff) | |
download | qemu-7006c9a76119a863e5812de572841618b9540ac2.tar.gz qemu-7006c9a76119a863e5812de572841618b9540ac2.tar.xz qemu-7006c9a76119a863e5812de572841618b9540ac2.zip |
block: Add op blocker permission constants
This patch defines the permission categories that will be used by the
new op blocker system.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Acked-by: Fam Zheng <famz@redhat.com>
Diffstat (limited to 'include/block')
-rw-r--r-- | include/block/block.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/include/block/block.h b/include/block/block.h index bde5ebda18..f62f38e6a4 100644 --- a/include/block/block.h +++ b/include/block/block.h @@ -187,6 +187,42 @@ typedef enum BlockOpType { BLOCK_OP_TYPE_MAX, } BlockOpType; +/* Block node permission constants */ +enum { + /** + * A user that has the "permission" of consistent reads is guaranteed that + * their view of the contents of the block device is complete and + * self-consistent, representing the contents of a disk at a specific + * point. + * + * For most block devices (including their backing files) this is true, but + * the property cannot be maintained in a few situations like for + * intermediate nodes of a commit block job. + */ + BLK_PERM_CONSISTENT_READ = 0x01, + + /** This permission is required to change the visible disk contents. */ + BLK_PERM_WRITE = 0x02, + + /** + * This permission (which is weaker than BLK_PERM_WRITE) is both enough and + * required for writes to the block node when the caller promises that + * the visible disk content doesn't change. + */ + BLK_PERM_WRITE_UNCHANGED = 0x04, + + /** This permission is required to change the size of a block node. */ + BLK_PERM_RESIZE = 0x08, + + /** + * This permission is required to change the node that this BdrvChild + * points to. + */ + BLK_PERM_GRAPH_MOD = 0x10, + + BLK_PERM_ALL = 0x1f, +}; + /* disk I/O throttling */ void bdrv_init(void); void bdrv_init_with_whitelist(void); |