qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [RFC PATCH 02/41] block: Add op blocker permission constant


From: Kevin Wolf
Subject: [Qemu-devel] [RFC PATCH 02/41] block: Add op blocker permission constants
Date: Mon, 13 Feb 2017 18:22:24 +0100

This patch defines the permission categories that will be used by the
new op blocker system.

Signed-off-by: Kevin Wolf <address@hidden>
---
 include/block/block_int.h | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/include/block/block_int.h b/include/block/block_int.h
index 2d92d7e..6a37b06 100644
--- a/include/block/block_int.h
+++ b/include/block/block_int.h
@@ -414,6 +414,40 @@ struct BdrvChildRole {
 extern const BdrvChildRole child_file;
 extern const BdrvChildRole child_format;
 
+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, repesenting 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
+     * this visible disk contents 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,
+};
+
 struct BdrvChild {
     BlockDriverState *bs;
     char *name;
-- 
1.8.3.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]