diff mbox series

[PULL,5/7] quorum: Require WRITE perm with rewrite-corrupted

Message ID 20201117121558.249585-6-kwolf@redhat.com (mailing list archive)
State New, archived
Headers show
Series [PULL,1/7] char-stdio: Fix QMP default for 'signal' | expand

Commit Message

Kevin Wolf Nov. 17, 2020, 12:15 p.m. UTC
From: Max Reitz <mreitz@redhat.com>

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 | 5 +++++
 1 file changed, 5 insertions(+)
diff mbox series

Patch

diff --git a/block/quorum.c b/block/quorum.c
index e846a7e892..b10fc2089e 100644
--- a/block/quorum.c
+++ b/block/quorum.c
@@ -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