Am 05.07.2011 06:41, schrieb Devin Nakamura: > Signed-off-by: Devin Nakamura <devin...@gmail.com> > --- > block.c | 19 +++++++++++++++++++ > block.h | 2 ++ > 2 files changed, 21 insertions(+), 0 deletions(-) > > diff --git a/block.c b/block.c > index 24a25d5..e7699a6 100644 > --- a/block.c > +++ b/block.c > @@ -3018,3 +3018,22 @@ out: > > return ret; > } > + > + > +int bdrv_open_conversion_target(BlockDriverState **bs, > + char *filename, char *target_fmt, QEMUOptionParameter *options) > +{ > + BlockDriver *drv; > + > + drv = bdrv_find_format(target_fmt); > + if(!drv){
I'll comment on it here, but you need to fix the coding style in the whole series. You may want to try scripts/checkpatch.pl. > + return -ENOENT; > + } > + > + if(!drv->bdrv_open_conversion_target){ > + return -ENOTSUP; > + } > + *bs = bdrv_new(""); > + (*bs)->opaque = qemu_malloc(drv->instance_size); > + return drv->bdrv_open_conversion_target(*bs, filename, options); Is this actually enough? The normal bdrv_open() sets much more fields of the BlockDriverState, and I would expect that the block drivers rely on at least some of them. Kevin