diff mbox

[12/54] block: Add op blocker permission constants

Message ID 1487689130-30373-13-git-send-email-kwolf@redhat.com
State New
Headers show

Commit Message

Kevin Wolf Feb. 21, 2017, 2:58 p.m. UTC
This patch defines the permission categories that will be used by the
new op blocker system.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 include/block/block.h | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

Comments

Max Reitz Feb. 22, 2017, 1:43 p.m. UTC | #1
On 21.02.2017 15:58, Kevin Wolf wrote:
> This patch defines the permission categories that will be used by the
> new op blocker system.
> 
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
>  include/block/block.h | 35 +++++++++++++++++++++++++++++++++++
>  1 file changed, 35 insertions(+)

Reviewed-by: Max Reitz <mreitz@redhat.com>
Fam Zheng Feb. 23, 2017, 11:53 a.m. UTC | #2
On Tue, 02/21 15:58, Kevin Wolf wrote:
> This patch defines the permission categories that will be used by the
> new op blocker system.
> 
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
>  include/block/block.h | 35 +++++++++++++++++++++++++++++++++++
>  1 file changed, 35 insertions(+)
> 
> diff --git a/include/block/block.h b/include/block/block.h
> index bde5ebd..ac40c8d 100644
> --- a/include/block/block.h
> +++ b/include/block/block.h
> @@ -187,6 +187,41 @@ 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, repesenting the contents of a disk at a specific point.

*representing

> +     *
> +     * 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.

"contents doesn't" sounds weird to me, but I'm not very sure.

> +     */
> +    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);
> -- 
> 1.8.3.1
> 

Fam
diff mbox

Patch

diff --git a/include/block/block.h b/include/block/block.h
index bde5ebd..ac40c8d 100644
--- a/include/block/block.h
+++ b/include/block/block.h
@@ -187,6 +187,41 @@  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, 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,
+};
+
 /* disk I/O throttling */
 void bdrv_init(void);
 void bdrv_init_with_whitelist(void);