[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [RFC PATCH 11/41] vvfat: Implement .bdrv_child_perm()
From: |
Kevin Wolf |
Subject: |
[Qemu-block] [RFC PATCH 11/41] vvfat: Implement .bdrv_child_perm() |
Date: |
Mon, 13 Feb 2017 18:22:33 +0100 |
vvfat is the last remaining driver that can have children, but doesn't
implement .bdrv_child_perm() yet. The default handlers aren't suitable
here, so let's implement a very simple driver-specific one that protects
the internal child from being used by other users as good as our
permissions permit.
Signed-off-by: Kevin Wolf <address@hidden>
---
block/vvfat.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/block/vvfat.c b/block/vvfat.c
index c6bf67e..7246432 100644
--- a/block/vvfat.c
+++ b/block/vvfat.c
@@ -3052,6 +3052,18 @@ err:
return ret;
}
+static void vvfat_child_perm(BlockDriverState *bs, BdrvChild *c,
+ const BdrvChildRole *role,
+ uint64_t perm, uint64_t shared,
+ uint64_t *nperm, uint64_t *nshared)
+{
+ assert(role == &child_vvfat_qcow);
+
+ /* This is a private node, nobody should try to attach to it */
+ *nperm = BLK_PERM_WRITE;
+ *nshared = 0;
+}
+
static void vvfat_close(BlockDriverState *bs)
{
BDRVVVFATState *s = bs->opaque;
@@ -3077,6 +3089,7 @@ static BlockDriver bdrv_vvfat = {
.bdrv_file_open = vvfat_open,
.bdrv_refresh_limits = vvfat_refresh_limits,
.bdrv_close = vvfat_close,
+ .bdrv_child_perm = vvfat_child_perm,
.bdrv_co_preadv = vvfat_co_preadv,
.bdrv_co_pwritev = vvfat_co_pwritev,
--
1.8.3.1
- [Qemu-block] [RFC PATCH 08/41] block: Request child permissions in filter drivers, (continued)
[Qemu-block] [RFC PATCH 10/41] block: Request child permissions in format drivers, Kevin Wolf, 2017/02/13
[Qemu-block] [RFC PATCH 11/41] vvfat: Implement .bdrv_child_perm(),
Kevin Wolf <=
[Qemu-block] [RFC PATCH 12/41] block: Require .bdrv_child_perm() with child nodes, Kevin Wolf, 2017/02/13
[Qemu-block] [RFC PATCH 13/41] block: Request real permissions in bdrv_attach_child(), Kevin Wolf, 2017/02/13
[Qemu-block] [RFC PATCH 14/41] block: Add permissions to BlockBackend, Kevin Wolf, 2017/02/13
[Qemu-block] [RFC PATCH 15/41] block: Add permissions to blk_new(), Kevin Wolf, 2017/02/13
[Qemu-block] [RFC PATCH 17/41] block: Request real permissions in blk_new_open(), Kevin Wolf, 2017/02/13