On 21.02.2017 15:58, Kevin Wolf wrote: > The way that attaching bs->file worked was a bit unusual in that it was > the only child that would be attached to a node which is not opened yet. > Because of this, the block layer couldn't know yet which permissions the > driver would eventually need. > > This patch moves the point where bs->file is attached to the beginning > of the individual .bdrv_open() implementations, so drivers already know > what they are going to do with the child. This is also more consistent > with how driver-specific children work. > > For a moment, bdrv_open() gets its own BdrvChild to perform image > probing, but instead of directly assigning this BdrvChild to the BDS, it > becomes a temporary one and the node name is passed as an option to the > drivers, so that they can simply use bdrv_open_child() to create another > reference for their own use. > > This duplicated child for (the not opened yet) bs is not the final > state, a follow-up patch will change the image probing code to use a > BlockBackend, which is completely independent of bs. > > Signed-off-by: Kevin Wolf <kw...@redhat.com> > --- > block.c | 35 ++++++++++++++++++++++++----------- > block/bochs.c | 6 ++++++ > block/cloop.c | 6 ++++++ > block/crypto.c | 6 ++++++ > block/dmg.c | 6 ++++++ > block/parallels.c | 6 ++++++ > block/qcow.c | 6 ++++++ > block/qcow2.c | 18 +++++++++++++++--- > block/qed.c | 18 +++++++++++++++--- > block/raw-format.c | 6 ++++++ > block/replication.c | 6 ++++++ > block/vdi.c | 6 ++++++ > block/vhdx.c | 6 ++++++ > block/vmdk.c | 6 ++++++ > block/vpc.c | 6 ++++++ > tests/qemu-iotests/051.out | 4 ++-- > tests/qemu-iotests/051.pc.out | 4 ++-- > 17 files changed, 130 insertions(+), 21 deletions(-)
Reviewed-by: Max Reitz <mre...@redhat.com>
signature.asc
Description: OpenPGP digital signature