[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [RFC PATCH 11/41] vvfat: Implement .bdrv_child_perm()
From: |
Max Reitz |
Subject: |
Re: [Qemu-block] [RFC PATCH 11/41] vvfat: Implement .bdrv_child_perm() |
Date: |
Wed, 15 Feb 2017 18:30:04 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 |
On 13.02.2017 18:22, Kevin Wolf wrote:
> 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;
0 for shared is probably enough to ward every other access off, but
maybe we should still pro forma request consistent read access...?
Max
> +}
> +
> 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,
>
signature.asc
Description: OpenPGP digital signature
- [Qemu-block] [RFC PATCH 09/41] block: Default .bdrv_child_perm() for format 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, 2017/02/13
- Re: [Qemu-block] [RFC PATCH 11/41] vvfat: Implement .bdrv_child_perm(),
Max Reitz <=
[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