]> git.ipfire.org Git - thirdparty/qemu.git/commit
fdc: Fix inserting read-only media in empty drive
authorKevin Wolf <kwolf@redhat.com>
Tue, 30 Jul 2019 13:37:08 +0000 (15:37 +0200)
committerKevin Wolf <kwolf@redhat.com>
Tue, 30 Jul 2019 15:31:58 +0000 (17:31 +0200)
commit0b9e918f03df47ae393fa68d9ac37ce4820cbaaf
tree1b9ed026b183b18e9ec0cab1542b2e3dff51fb35
parent8517bf84056282ea3e27772d51f76db3a6fa2d26
fdc: Fix inserting read-only media in empty drive

In order to insert a read-only medium (i.e. a read-only block node) to
the BlockBackend of a floppy drive, we must not have taken write
permissions on that BlockBackend, or the operation will fail with the
error message "Block node is read-only".

The device already takes care to remove all permissions when the medium
is ejected, but the state isn't correct if the drive is initially empty:
It uses blk_is_read_only() to check whether write permissions should be
taken, but this function returns false for empty BlockBackends in the
common case.

Fix floppy_drive_realize() to avoid taking write permissions if the
drive is empty.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
hw/block/fdc.c