ping
On Thu 04 Apr 2019 01:29:53 PM CEST, Alberto Garcia wrote:
> There is no need to check for this because all block drivers that have
> children implement bdrv_child_perm and all callers already ensure that
> bs->drv is set.
>
> Furthermore, if this check would fail then the callers would end up
> with uninitialized values for nperm and nshared.
>
> This patch replaces the check with an assertion.
>
> Signed-off-by: Alberto Garcia <be...@igalia.com>
> ---
> block.c | 9 ++++-----
> 1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/block.c b/block.c
> index 3050854528..5f92565692 100644
> --- a/block.c
> +++ b/block.c
> @@ -1742,11 +1742,10 @@ static void bdrv_child_perm(BlockDriverState *bs,
> BlockDriverState *child_bs,
> uint64_t parent_perm, uint64_t parent_shared,
> uint64_t *nperm, uint64_t *nshared)
> {
> - if (bs->drv && bs->drv->bdrv_child_perm) {
> - bs->drv->bdrv_child_perm(bs, c, role, reopen_queue,
> - parent_perm, parent_shared,
> - nperm, nshared);
> - }
> + assert(bs->drv && bs->drv->bdrv_child_perm);
> + bs->drv->bdrv_child_perm(bs, c, role, reopen_queue,
> + parent_perm, parent_shared,
> + nperm, nshared);
> /* TODO Take force_share from reopen_queue */
> if (child_bs && child_bs->force_share) {
> *nshared = BLK_PERM_ALL;
> --
> 2.11.0