[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH for-2.10 1/5] block: Fix order in bdrv_replace_c
From: |
Jeff Cody |
Subject: |
Re: [Qemu-block] [PATCH for-2.10 1/5] block: Fix order in bdrv_replace_child() |
Date: |
Thu, 3 Aug 2017 12:18:38 -0400 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
On Thu, Aug 03, 2017 at 05:02:57PM +0200, Kevin Wolf wrote:
> Commit 8ee03995 refactored the code incorrectly and broke the release of
> permissions on the old BDS. Instead of changing the permissions to the
> new required values after removing the old BDS from the list of
> children, it only re-obtains the permissions it already had.
>
> Change the order of operations so that the old BDS is removed again
> before calculating the new required permissions.
>
> Signed-off-by: Kevin Wolf <address@hidden>
> ---
> block.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/block.c b/block.c
> index ce9cce7b3c..ab908cdc50 100644
> --- a/block.c
> +++ b/block.c
> @@ -1933,6 +1933,8 @@ static void bdrv_replace_child(BdrvChild *child,
> BlockDriverState *new_bs)
> BlockDriverState *old_bs = child->bs;
> uint64_t perm, shared_perm;
>
> + bdrv_replace_child_noperm(child, new_bs);
> +
> if (old_bs) {
> /* Update permissions for old node. This is guaranteed to succeed
> * because we're just taking a parent away, so we're loosening
> @@ -1942,8 +1944,6 @@ static void bdrv_replace_child(BdrvChild *child,
> BlockDriverState *new_bs)
> bdrv_set_perm(old_bs, perm, shared_perm);
> }
>
> - bdrv_replace_child_noperm(child, new_bs);
> -
> if (new_bs) {
> bdrv_get_cumulative_perm(new_bs, &perm, &shared_perm);
> bdrv_set_perm(new_bs, perm, shared_perm);
> --
> 2.13.3
>
>
Reviewed-by: Jeff Cody <address@hidden>
[Qemu-block] [PATCH for-2.10 1/5] block: Fix order in bdrv_replace_child(), Kevin Wolf, 2017/08/03
[Qemu-block] [PATCH for-2.10 4/5] qemu-io: Allow reopen read-write, Kevin Wolf, 2017/08/03
[Qemu-block] [PATCH for-2.10 3/5] block: Set BDRV_O_ALLOW_RDWR during rw reopen, Kevin Wolf, 2017/08/03
[Qemu-block] [PATCH for-2.10 5/5] qemu-iotests: Test reopen between read-only and read-write, Kevin Wolf, 2017/08/03
Re: [Qemu-block] [PATCH for-2.10 0/5] block: bdrv_reopen() fixes, John Snow, 2017/08/07