[PATCH v2 14/33] block: Distinguish paths in *_format_default_perms

Max Reitz posted 33 patches 6 years ago
There is a newer version of this series
[PATCH v2 14/33] block: Distinguish paths in *_format_default_perms
Posted by Max Reitz 6 years ago
bdrv_format_default_perms() has one code path for backing files, and one
for storage files.  We want to pull them out into own functions, so
make sure they are completely distinct before so the next patches will
be a bit cleaner.

Signed-off-by: Max Reitz <mreitz@redhat.com>
---
 block.c | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/block.c b/block.c
index 1816e92674..39ba6aad0a 100644
--- a/block.c
+++ b/block.c
@@ -2309,6 +2309,13 @@ void bdrv_format_default_perms(BlockDriverState *bs, BdrvChild *c,
             perm |= BLK_PERM_CONSISTENT_READ;
         }
         shared &= ~(BLK_PERM_WRITE | BLK_PERM_RESIZE);
+
+        if (bs->open_flags & BDRV_O_INACTIVE) {
+            shared |= BLK_PERM_WRITE | BLK_PERM_RESIZE;
+        }
+
+        *nperm = perm;
+        *nshared = shared;
     } else {
         /* We want consistent read from backing files if the parent needs it.
          * No other operations are performed on backing files. */
@@ -2325,14 +2332,14 @@ void bdrv_format_default_perms(BlockDriverState *bs, BdrvChild *c,
 
         shared |= BLK_PERM_CONSISTENT_READ | BLK_PERM_GRAPH_MOD |
                   BLK_PERM_WRITE_UNCHANGED;
-    }
 
-    if (bs->open_flags & BDRV_O_INACTIVE) {
-        shared |= BLK_PERM_WRITE | BLK_PERM_RESIZE;
-    }
+        if (bs->open_flags & BDRV_O_INACTIVE) {
+            shared |= BLK_PERM_WRITE | BLK_PERM_RESIZE;
+        }
 
-    *nperm = perm;
-    *nshared = shared;
+        *nperm = perm;
+        *nshared = shared;
+    }
 }
 
 uint64_t bdrv_qapi_perm_to_blk_perm(BlockPermission qapi_perm)
-- 
2.24.1


Re: [PATCH v2 14/33] block: Distinguish paths in *_format_default_perms
Posted by Eric Blake 6 years ago
On 2/4/20 11:08 AM, Max Reitz wrote:
> bdrv_format_default_perms() has one code path for backing files, and one
> for storage files.  We want to pull them out into own functions, so
> make sure they are completely distinct before so the next patches will
> be a bit cleaner.
> 
> Signed-off-by: Max Reitz <mreitz@redhat.com>
> ---
>   block.c | 19 +++++++++++++------
>   1 file changed, 13 insertions(+), 6 deletions(-)
> 

Reviewed-by: Eric Blake <eblake@redhat.com>

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org