block: Assert that drv->bdrv_child_perm is set in bdrv_child_perm()
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 <berto@igalia.com> Message-id: 20190404112953.4058-1-berto@igalia.com Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
parent
21205c7c3b
commit
0b3ca76e52
9
block.c
9
block.c
@ -1743,11 +1743,10 @@ static void bdrv_child_perm(BlockDriverState *bs, BlockDriverState *child_bs,
|
|||||||
uint64_t parent_perm, uint64_t parent_shared,
|
uint64_t parent_perm, uint64_t parent_shared,
|
||||||
uint64_t *nperm, uint64_t *nshared)
|
uint64_t *nperm, uint64_t *nshared)
|
||||||
{
|
{
|
||||||
if (bs->drv && bs->drv->bdrv_child_perm) {
|
assert(bs->drv && bs->drv->bdrv_child_perm);
|
||||||
bs->drv->bdrv_child_perm(bs, c, role, reopen_queue,
|
bs->drv->bdrv_child_perm(bs, c, role, reopen_queue,
|
||||||
parent_perm, parent_shared,
|
parent_perm, parent_shared,
|
||||||
nperm, nshared);
|
nperm, nshared);
|
||||||
}
|
|
||||||
/* TODO Take force_share from reopen_queue */
|
/* TODO Take force_share from reopen_queue */
|
||||||
if (child_bs && child_bs->force_share) {
|
if (child_bs && child_bs->force_share) {
|
||||||
*nshared = BLK_PERM_ALL;
|
*nshared = BLK_PERM_ALL;
|
||||||
|
Loading…
Reference in New Issue
Block a user