diff options
| author | Vladimir Sementsov-Ogievskiy | 2022-07-26 22:11:21 +0200 |
|---|---|---|
| committer | Kevin Wolf | 2022-10-27 20:14:11 +0200 |
| commit | 83930780325b144a5908c45b3957b9b6457b3831 (patch) | |
| tree | 459cb7104d18ea3f5115bea5cbb56b7030176113 /include | |
| parent | block: BlockDriver: add .filtered_child_is_backing field (diff) | |
| download | qemu-83930780325b144a5908c45b3957b9b6457b3831.tar.gz qemu-83930780325b144a5908c45b3957b9b6457b3831.tar.xz qemu-83930780325b144a5908c45b3957b9b6457b3831.zip | |
block: introduce bdrv_open_file_child() helper
Almost all drivers call bdrv_open_child() similarly. Let's create a
helper for this.
The only not updated drivers that call bdrv_open_child() to set
bs->file are raw-format and snapshot-access:
raw-format sometimes want to have filtered child but
don't set drv->is_filter to true.
snapshot-access wants only DATA | PRIMARY
Possibly we should implement drv->is_filter_func() handler, to consider
raw-format as filter when it works as filter.. But it's another story.
Note also, that we decrease assignments to bs->file in code: it helps
us restrict modifying this field in further commit.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Hanna Reitz <hreitz@redhat.com>
Message-Id: <20220726201134.924743-3-vsementsov@yandex-team.ru>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'include')
| -rw-r--r-- | include/block/block-global-state.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/block/block-global-state.h b/include/block/block-global-state.h index 21265e3966..29a38d7e18 100644 --- a/include/block/block-global-state.h +++ b/include/block/block-global-state.h @@ -76,6 +76,9 @@ BdrvChild *bdrv_open_child(const char *filename, const BdrvChildClass *child_class, BdrvChildRole child_role, bool allow_none, Error **errp); +int bdrv_open_file_child(const char *filename, + QDict *options, const char *bdref_key, + BlockDriverState *parent, Error **errp); BlockDriverState *bdrv_open_blockdev_ref(BlockdevRef *ref, Error **errp); int bdrv_set_backing_hd(BlockDriverState *bs, BlockDriverState *backing_hd, Error **errp); |
