[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH V1] replication: clarify permissions
From: |
Changlong Xie |
Subject: |
[Qemu-devel] [PATCH V1] replication: clarify permissions |
Date: |
Tue, 14 Mar 2017 19:46:52 +0800 |
Even if hidden_disk, secondary_disk are backing files, they all need
write permissions in replication scenario. Otherwise we will encouter
below exceptions on secondary side during adding nbd server:
{'execute': 'nbd-server-add', 'arguments': {'device': 'colo-disk', 'writable':
true } }
{"error": {"class": "GenericError", "desc": "Conflicts with use by
hidden-qcow2-driver as 'backing', which does not allow 'write' on
sec-qcow2-driver-for-nbd"}}
CC: Zhang Hailiang <address@hidden>
CC: Zhang Chen <address@hidden>
CC: Wen Congyang <address@hidden>
Signed-off-by: Changlong Xie <address@hidden>
---
block/replication.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/block/replication.c b/block/replication.c
index 22f170f..bf3c395 100644
--- a/block/replication.c
+++ b/block/replication.c
@@ -155,6 +155,18 @@ static void replication_close(BlockDriverState *bs)
replication_remove(s->rs);
}
+static void replication_child_perm(BlockDriverState *bs, BdrvChild *c,
+ const BdrvChildRole *role,
+ uint64_t perm, uint64_t shared,
+ uint64_t *nperm, uint64_t *nshared)
+{
+ *nperm = *nshared = BLK_PERM_CONSISTENT_READ \
+ | BLK_PERM_WRITE \
+ | BLK_PERM_WRITE_UNCHANGED;
+
+ return;
+}
+
static int64_t replication_getlength(BlockDriverState *bs)
{
return bdrv_getlength(bs->file->bs);
@@ -660,7 +672,7 @@ BlockDriver bdrv_replication = {
.bdrv_open = replication_open,
.bdrv_close = replication_close,
- .bdrv_child_perm = bdrv_filter_default_perms,
+ .bdrv_child_perm = replication_child_perm,
.bdrv_getlength = replication_getlength,
.bdrv_co_readv = replication_co_readv,
--
1.9.3
- [Qemu-devel] [PATCH V1] replication: clarify permissions,
Changlong Xie <=