block: Finish deprecation of 'qemu-img convert -n -o'

It's been two releases since we started warning; time to make the
combination an error as promised.  There was no iotest coverage, so
add some.

While touching the documentation, tweak another section heading for
consistent style.

Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <20200706203954.341758-3-eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Eric Blake 2020-07-06 15:39:46 -05:00 committed by Kevin Wolf
parent 4e2f441878
commit 25956af3fe
4 changed files with 21 additions and 12 deletions

View File

@ -427,14 +427,6 @@ kernel in 2018, and has also been dropped from glibc.
Related binaries Related binaries
---------------- ----------------
``qemu-img convert -n -o`` (since 4.2.0)
''''''''''''''''''''''''''''''''''''''''
All options specified in ``-o`` are image creation options, so
they have no effect when used with ``-n`` to skip image creation.
Silently ignored options can be confusing, so this combination of
options will be made an error in future versions.
Backwards compatibility Backwards compatibility
----------------------- -----------------------
@ -540,8 +532,8 @@ spec you can use the ``-cpu rv64gcsu,priv_spec=v1.10.0`` command line argument.
Related binaries Related binaries
---------------- ----------------
``qemu-nbd --partition`` (removed in 5.0.0) ``qemu-nbd --partition`` (removed in 5.0)
''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''
The ``qemu-nbd --partition $digit`` code (also spelled ``-P``) The ``qemu-nbd --partition $digit`` code (also spelled ``-P``)
could only handle MBR partitions, and never correctly handled logical could only handle MBR partitions, and never correctly handled logical
@ -557,6 +549,12 @@ can be rewritten as::
qemu-nbd -t --image-opts driver=raw,offset=1M,size=100M,file.driver=qcow2,file.file.driver=file,file.file.filename=file.qcow2 qemu-nbd -t --image-opts driver=raw,offset=1M,size=100M,file.driver=qcow2,file.file.driver=file,file.file.filename=file.qcow2
``qemu-img convert -n -o`` (removed in 5.1)
'''''''''''''''''''''''''''''''''''''''''''
All options specified in ``-o`` are image creation options, so
they are now rejected when used with ``-n`` to skip image creation.
Command line options Command line options
-------------------- --------------------

View File

@ -2364,8 +2364,8 @@ static int img_convert(int argc, char **argv)
} }
if (skip_create && options) { if (skip_create && options) {
warn_report("-o has no effect when skipping image creation"); error_report("-o has no effect when skipping image creation");
warn_report("This will become an error in future QEMU versions."); goto fail_getopt;
} }
if (s.has_zero_init && !skip_create) { if (s.has_zero_init && !skip_create) {

View File

@ -290,6 +290,13 @@ TEST_IMG="$TEST_IMG".orig _make_test_img 64M
# backing file" # backing file"
$QEMU_IMG convert -O $IMGFMT -B "$TEST_IMG".base -n "$TEST_IMG" "$TEST_IMG".orig $QEMU_IMG convert -O $IMGFMT -B "$TEST_IMG".base -n "$TEST_IMG" "$TEST_IMG".orig
echo
echo '=== -n incompatible with -o ==='
echo
$QEMU_IMG convert -O $IMGFMT -o preallocation=metadata -n \
"$TEST_IMG" "$TEST_IMG".orig && echo "unexpected success"
# success, all done # success, all done
echo '*** done' echo '*** done'
rm -f $seq.full rm -f $seq.full

View File

@ -233,4 +233,8 @@ Images are identical.
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=67108864 Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=67108864
Formatting 'TEST_DIR/t.IMGFMT.orig', fmt=IMGFMT size=67108864 Formatting 'TEST_DIR/t.IMGFMT.orig', fmt=IMGFMT size=67108864
=== -n incompatible with -o ===
qemu-img: -o has no effect when skipping image creation
*** done *** done