qemu-e2k/hw/usb
Kevin Wolf 86b1cf3227 block: Separate blk_is_writable() and blk_supports_write_perm()
Currently, blk_is_read_only() tells whether a given BlockBackend can
only be used in read-only mode because its root node is read-only. Some
callers actually try to answer a slightly different question: Is the
BlockBackend configured to be writable, by taking write permissions on
the root node?

This can differ, for example, for CD-ROM devices which don't take write
permissions, but may be backed by a writable image file. scsi-cd allows
write requests to the drive if blk_is_read_only() returns false.
However, the write request will immediately run into an assertion
failure because the write permission is missing.

This patch introduces separate functions for both questions.
blk_supports_write_perm() answers the question whether the block
node/image file can support writable devices, whereas blk_is_writable()
tells whether the BlockBackend is currently configured to be writable.

All calls of blk_is_read_only() are converted to one of the two new
functions.

Fixes: https://bugs.launchpad.net/bugs/1906693
Cc: qemu-stable@nongnu.org
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20210118123448.307825-2-kwolf@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2021-01-27 20:45:20 +01:00
..
bus.c usb: add pcap support. 2021-01-22 14:51:35 +01:00
ccid-card-emulated.c
ccid-card-passthru.c hw/usb: Fix bad printf format specifiers 2021-01-22 14:51:35 +01:00
ccid.h
chipidea.c
combined-packet.c
core.c usb: add pcap support. 2021-01-22 14:51:35 +01:00
desc-msos.c
desc.c
desc.h
dev-audio.c
dev-hid.c
dev-hub.c Remove superfluous timer_del() calls 2021-01-08 15:13:38 +00:00
dev-mtp.c
dev-network.c
dev-serial.c
dev-smartcard-reader.c hw/usb: Fix bad printf format specifiers 2021-01-22 14:51:35 +01:00
dev-storage.c block: Separate blk_is_writable() and blk_supports_write_perm() 2021-01-27 20:45:20 +01:00
dev-uas.c hw/usb/dev-uas: Report command additional adb length as unsupported 2021-01-22 14:51:35 +01:00
dev-wacom.c
hcd-dwc2.c
hcd-dwc2.h
hcd-dwc3.c
hcd-ehci-pci.c
hcd-ehci-sysbus.c
hcd-ehci.c hw/usb: Fix bad printf format specifiers 2021-01-22 14:51:35 +01:00
hcd-ehci.h
hcd-musb.c
hcd-ohci-pci.c Remove superfluous timer_del() calls 2021-01-08 15:13:38 +00:00
hcd-ohci.c
hcd-ohci.h
hcd-uhci.c Remove superfluous timer_del() calls 2021-01-08 15:13:38 +00:00
hcd-xhci-nec.c
hcd-xhci-pci.c hw/usb: Convert to qdev_realize() 2021-01-22 14:51:35 +01:00
hcd-xhci-pci.h
hcd-xhci-sysbus.c hw/usb: Convert to qdev_realize() 2021-01-22 14:51:35 +01:00
hcd-xhci-sysbus.h
hcd-xhci.c Remove superfluous timer_del() calls 2021-01-08 15:13:38 +00:00
hcd-xhci.h hw/usb/hcd-xhci: Fix extraneous format-truncation error on 32-bit hosts 2021-01-22 14:51:35 +01:00
host-libusb.c usb-host: map LIBUSB_SPEED_SUPER_PLUS to USB_SPEED_SUPER 2021-01-22 14:51:35 +01:00
host-stub.c
host.h
imx-usb-phy.c
Kconfig
libhw.c
meson.build usb: add pcap support. 2021-01-22 14:51:35 +01:00
pcap.c usb: add pcap support. 2021-01-22 14:51:35 +01:00
quirks-ftdi-ids.h
quirks-pl2303-ids.h
quirks.c
quirks.h
redirect.c Remove superfluous timer_del() calls 2021-01-08 15:13:38 +00:00
trace-events
trace.h
tusb6010.c
u2f-emulated.c
u2f-passthru.c
u2f.c
u2f.h
xen-usb.c
xlnx-usb-subsystem.c
xlnx-versal-usb2-ctrl-regs.c