]> git.proxmox.com Git - mirror_qemu.git/commitdiff
quorum: Require WRITE perm with rewrite-corrupted
authorMax Reitz <mreitz@redhat.com>
Fri, 13 Nov 2020 21:17:16 +0000 (22:17 +0100)
committerKevin Wolf <kwolf@redhat.com>
Tue, 17 Nov 2020 11:38:28 +0000 (12:38 +0100)
Using rewrite-corrupted means quorum may issue writes to its children
just from receiving read requests from its parents.  Thus, it must take
the WRITE permission when rewrite-corrupted is used.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20201113211718.261671-2-mreitz@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block/quorum.c

index e846a7e892067bf6f132b4cd99196875d738ee7c..b10fc2089e5e9e2d9dabd379e398d1b8aa9862fb 100644 (file)
@@ -1163,7 +1163,12 @@ static void quorum_child_perm(BlockDriverState *bs, BdrvChild *c,
                               uint64_t perm, uint64_t shared,
                               uint64_t *nperm, uint64_t *nshared)
 {
+    BDRVQuorumState *s = bs->opaque;
+
     *nperm = perm & DEFAULT_PERM_PASSTHROUGH;
+    if (s->rewrite_corrupted) {
+        *nperm |= BLK_PERM_WRITE;
+    }
 
     /*
      * We cannot share RESIZE or WRITE, as this would make the