diff options
| author | Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> | 2020-10-21 17:58:45 +0300 |
|---|---|---|
| committer | Max Reitz <mreitz@redhat.com> | 2020-12-18 12:35:55 +0100 |
| commit | 9530a25b8b7eb5cc1800b66ee617610cd43f0fad (patch) | |
| tree | 47b99abb97aea981321449c706e9a2be1a25f1ae | |
| parent | d1a764d126aa9bd1b519855607f55daf266b07bf (diff) | |
| download | focaccia-qemu-9530a25b8b7eb5cc1800b66ee617610cd43f0fad.tar.gz focaccia-qemu-9530a25b8b7eb5cc1800b66ee617610cd43f0fad.zip | |
block: bdrv_check_perm(): process children anyway
Do generic processing even for drivers which define .bdrv_check_perm handler. It's needed for further preallocate filter: it will need to do additional action on bdrv_check_perm, but don't want to reimplement generic logic. The patch doesn't change existing behaviour: the only driver that implements bdrv_check_perm is file-posix, but it never has any children. Also, bdrv_set_perm() don't stop processing if driver has .bdrv_set_perm handler as well. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Message-Id: <20201021145859.11201-8-vsementsov@virtuozzo.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Signed-off-by: Max Reitz <mreitz@redhat.com>
| -rw-r--r-- | block.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/block.c b/block.c index b57421a969..64412ee7de 100644 --- a/block.c +++ b/block.c @@ -2028,8 +2028,11 @@ static int bdrv_check_perm(BlockDriverState *bs, BlockReopenQueue *q, } if (drv->bdrv_check_perm) { - return drv->bdrv_check_perm(bs, cumulative_perms, - cumulative_shared_perms, errp); + ret = drv->bdrv_check_perm(bs, cumulative_perms, + cumulative_shared_perms, errp); + if (ret < 0) { + return ret; + } } /* Drivers that never have children can omit .bdrv_child_perm() */ |