Eric Blake <ebl...@redhat.com> writes: > 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.
Mentioning parameters in order. Old habits die hard... >> + * 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> Thanks!