On 02/16/2015 07:44 AM, Markus Armbruster wrote: > img_convert() and img_amend() use qemu_opts_do_parse(), which reports > errors with qerror_report_err(). Its error messages aren't helpful > here, the caller reports one that actually makes sense. Reproducer: > > $ qemu-img convert -o backing_format=raw in.img out.img > qemu-img: Invalid parameter 'backing_format' > qemu-img: Invalid options for file format 'raw' > > To fix, propagate errors through qemu_opts_do_parse(). This lifts the > error reporting into callers. Drop it from img_convert() and > img_amend(), keep it in qemu_chr_parse_compat(), bdrv_img_create(). > > Since I'm touching qemu_opts_do_parse() anyway, write a function > comment for it. > > Signed-off-by: Markus Armbruster <arm...@redhat.com> > --- > block.c | 5 ++++- > include/qemu/option.h | 3 ++- > qemu-char.c | 10 ++++++++-- > qemu-img.c | 25 +++++++++++++++++-------- > util/qemu-option.c | 19 +++++++++---------- > 5 files changed, 40 insertions(+), 22 deletions(-) >
> -int qemu_opts_do_parse(QemuOpts *opts, const char *params, const char > *firstname) > +/** > + * Store into @opts options parsed from @params. Reads a bit awkwardly; maybe: Store options parsed from @params into @opts. > + * If @firstname is non-null, the first key=value in @params may omit > + * key=, and is treated as if key was @firstname. > + * On error, store an error object through @errp if non-null. > + */ > +void qemu_opts_do_parse(QemuOpts *opts, const char *params, > + const char *firstname, Error **errp) > { Up to you if you want to improve that; either way, it's in a comment, so it doesn't affect correctness, so: Reviewed-by: Eric Blake <ebl...@redhat.com> -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature