Message ID | 20190815110623.13646-1-kwolf@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] qemu-img convert: Deprecate using -n and -o together | expand |
On 15.08.19 13:06, Kevin Wolf wrote: > bdrv_create options specified with -o have no effect when skipping image > creation with -n, so this doesn't make sense. Warn against the misuse > and deprecate the combination so we can make it a hard error later. > > Signed-off-by: Kevin Wolf <kwolf@redhat.com> > --- > > - Hopefully removed the "finger-wagging" that John saw, without stating > that the combination doesn't have a well-defined behaviour (because > skipping image creation and therefore ignoring -o is well-defined > behaviour). The problem is that e.g. the man page never says that -o gives creation options. It says that “options is a [...] list of format specific options”, nothing more. > qemu-img.c | 5 +++++ > qemu-deprecated.texi | 7 +++++++ > 2 files changed, 12 insertions(+) Reviewed-by: Max Reitz <mreitz@redhat.com>
On 8/15/19 6:06 AM, Kevin Wolf wrote: > bdrv_create options specified with -o have no effect when skipping image > creation with -n, so this doesn't make sense. Warn against the misuse > and deprecate the combination so we can make it a hard error later. > > Signed-off-by: Kevin Wolf <kwolf@redhat.com> > --- Reviewed-by: Eric Blake <eblake@redhat.com>
On 8/15/19 7:06 AM, Kevin Wolf wrote: > bdrv_create options specified with -o have no effect when skipping image > creation with -n, so this doesn't make sense. Warn against the misuse > and deprecate the combination so we can make it a hard error later. > > Signed-off-by: Kevin Wolf <kwolf@redhat.com> > --- > > - Hopefully removed the "finger-wagging" that John saw, without stating > that the combination doesn't have a well-defined behaviour (because > skipping image creation and therefore ignoring -o is well-defined > behaviour). > I'm sorry if that critique was in itself a finger-wag :( I'm not always the best with tone in written language myself. Arguably this is supposed to be my primary language, too. > qemu-img.c | 5 +++++ > qemu-deprecated.texi | 7 +++++++ > 2 files changed, 12 insertions(+) > > diff --git a/qemu-img.c b/qemu-img.c > index 79983772de..d9321f6418 100644 > --- a/qemu-img.c > +++ b/qemu-img.c > @@ -2231,6 +2231,11 @@ static int img_convert(int argc, char **argv) > goto fail_getopt; > } > > + if (skip_create && options) { > + warn_report("-o has no effect when skipping image creation"); > + warn_report("This will become an error in future QEMU versions."); > + } > + > s.src_num = argc - optind - 1; > out_filename = s.src_num >= 1 ? argv[argc - 1] : NULL; > > diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi > index fff07bb2a3..f7680c08e1 100644 > --- a/qemu-deprecated.texi > +++ b/qemu-deprecated.texi > @@ -305,6 +305,13 @@ to just export the entire image and then mount only /dev/nbd0p1 than > it is to reinvoke @command{qemu-nbd -c /dev/nbd0} limited to just a > subset of the image. > > +@subsection qemu-img convert -n -o (since 4.2.0) > + > +All options specified in @option{-o} are image creation options, so > +they have no effect when used with @option{-n} to skip image creation. > +Silently ignored options can be confusing, so this combination of > +options will be made an error in future versions. > + > @section Build system > > @subsection Python 2 support (since 4.1.0) > I do think this reads more pleasantly, though, so thank you very much for that! Reviewed-by: John Snow <jsnow@redhat.com>
diff --git a/qemu-img.c b/qemu-img.c index 79983772de..d9321f6418 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -2231,6 +2231,11 @@ static int img_convert(int argc, char **argv) goto fail_getopt; } + if (skip_create && options) { + warn_report("-o has no effect when skipping image creation"); + warn_report("This will become an error in future QEMU versions."); + } + s.src_num = argc - optind - 1; out_filename = s.src_num >= 1 ? argv[argc - 1] : NULL; diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi index fff07bb2a3..f7680c08e1 100644 --- a/qemu-deprecated.texi +++ b/qemu-deprecated.texi @@ -305,6 +305,13 @@ to just export the entire image and then mount only /dev/nbd0p1 than it is to reinvoke @command{qemu-nbd -c /dev/nbd0} limited to just a subset of the image. +@subsection qemu-img convert -n -o (since 4.2.0) + +All options specified in @option{-o} are image creation options, so +they have no effect when used with @option{-n} to skip image creation. +Silently ignored options can be confusing, so this combination of +options will be made an error in future versions. + @section Build system @subsection Python 2 support (since 4.1.0)
bdrv_create options specified with -o have no effect when skipping image creation with -n, so this doesn't make sense. Warn against the misuse and deprecate the combination so we can make it a hard error later. Signed-off-by: Kevin Wolf <kwolf@redhat.com> --- - Hopefully removed the "finger-wagging" that John saw, without stating that the combination doesn't have a well-defined behaviour (because skipping image creation and therefore ignoring -o is well-defined behaviour). qemu-img.c | 5 +++++ qemu-deprecated.texi | 7 +++++++ 2 files changed, 12 insertions(+)