Ping for anyone, especially block maintainers, willing to review this before soft freeze. On Wed, Feb 24, 2021 at 01:11:42PM +0000, Daniel P. Berrangé wrote: > The 'host_device' and 'host_cdrom' drivers must be used instead. > > Signed-off-by: Daniel P. Berrangé <berrange@xxxxxxxxxx> > --- > block/file-posix.c | 17 ++++++----------- > docs/system/deprecated.rst | 7 ------- > docs/system/removed-features.rst | 7 +++++++ > tests/qemu-iotests/226.out | 10 +++++----- > 4 files changed, 18 insertions(+), 23 deletions(-) > > diff --git a/block/file-posix.c b/block/file-posix.c > index 05079b40ca..20e14f8e96 100644 > --- a/block/file-posix.c > +++ b/block/file-posix.c > @@ -719,15 +719,9 @@ static int raw_open_common(BlockDriverState *bs, QDict *options, > } > > if (!device) { > - if (S_ISBLK(st.st_mode)) { > - warn_report("Opening a block device as a file using the '%s' " > - "driver is deprecated", bs->drv->format_name); > - } else if (S_ISCHR(st.st_mode)) { > - warn_report("Opening a character device as a file using the '%s' " > - "driver is deprecated", bs->drv->format_name); > - } else if (!S_ISREG(st.st_mode)) { > - error_setg(errp, "A regular file was expected by the '%s' driver, " > - "but something else was given", bs->drv->format_name); > + if (!S_ISREG(st.st_mode)) { > + error_setg(errp, "'%s' driver requires '%s' to be a regular file", > + bs->drv->format_name, bs->filename); > ret = -EINVAL; > goto fail; > } else { > @@ -736,8 +730,9 @@ static int raw_open_common(BlockDriverState *bs, QDict *options, > } > } else { > if (!(S_ISCHR(st.st_mode) || S_ISBLK(st.st_mode))) { > - error_setg(errp, "'%s' driver expects either " > - "a character or block device", bs->drv->format_name); > + error_setg(errp, "'%s' driver requires '%s' to be either " > + "a character or block device", > + bs->drv->format_name, bs->filename); > ret = -EINVAL; > goto fail; > } > diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst > index dc76584e02..3a86deb450 100644 > --- a/docs/system/deprecated.rst > +++ b/docs/system/deprecated.rst > @@ -21,13 +21,6 @@ deprecated. > System emulator command line arguments > -------------------------------------- > > -``-drive file=json:{...{'driver':'file'}}`` (since 3.0) > -''''''''''''''''''''''''''''''''''''''''''''''''''''''' > - > -The 'file' driver for drives is no longer appropriate for character or host > -devices and will only accept regular files (S_IFREG). The correct driver > -for these file types is 'host_cdrom' or 'host_device' as appropriate. > - > ``QEMU_AUDIO_`` environment variables and ``-audio-help`` (since 4.0) > ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' > > diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst > index 990bf7e015..1c9e384cb0 100644 > --- a/docs/system/removed-features.rst > +++ b/docs/system/removed-features.rst > @@ -59,6 +59,13 @@ would automatically enable USB support on the machine type. > When using the new syntax, USB support must be explicitly > enabled via the ``-machine usb=on`` argument. > > +``-drive file=json:{...{'driver':'file'}}`` (removed 6.0) > +''''''''''''''''''''''''''''''''''''''''''''''''''''''''' > + > +The 'file' driver for drives is no longer appropriate for character or host > +devices and will only accept regular files (S_IFREG). The correct driver > +for these file types is 'host_cdrom' or 'host_device' as appropriate. > + > QEMU Machine Protocol (QMP) commands > ------------------------------------ > > diff --git a/tests/qemu-iotests/226.out b/tests/qemu-iotests/226.out > index 42be973ff2..55504d29c4 100644 > --- a/tests/qemu-iotests/226.out > +++ b/tests/qemu-iotests/226.out > @@ -3,23 +3,23 @@ QA output created by 226 > === Testing with driver:file === > > == Testing RO == > -qemu-io: can't open: A regular file was expected by the 'file' driver, but something else was given > -qemu-io: warning: Opening a character device as a file using the 'file' driver is deprecated > +qemu-io: can't open: 'file' driver requires 'TEST_DIR/t.IMGFMT' to be a regular file > +qemu-io: can't open: 'file' driver requires '/dev/null' to be a regular file > == Testing RW == > qemu-io: can't open: Could not open 'TEST_DIR/t.IMGFMT': Is a directory > -qemu-io: warning: Opening a character device as a file using the 'file' driver is deprecated > +qemu-io: can't open: 'file' driver requires '/dev/null' to be a regular file > > === Testing with driver:host_device === > > == Testing RO == > -qemu-io: can't open: 'host_device' driver expects either a character or block device > +qemu-io: can't open: 'host_device' driver requires 'TEST_DIR/t.IMGFMT' to be either a character or block device > == Testing RW == > qemu-io: can't open: Could not open 'TEST_DIR/t.IMGFMT': Is a directory > > === Testing with driver:host_cdrom === > > == Testing RO == > -qemu-io: can't open: 'host_cdrom' driver expects either a character or block device > +qemu-io: can't open: 'host_cdrom' driver requires 'TEST_DIR/t.IMGFMT' to be either a character or block device > == Testing RW == > qemu-io: can't open: Could not open 'TEST_DIR/t.IMGFMT': Is a directory > > -- > 2.29.2 > Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|