[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [Qemu-devel] [PATCH 1/4] block: Warn if an if=<somethin
From: |
Peter Maydell |
Subject: |
Re: [Qemu-block] [Qemu-devel] [PATCH 1/4] block: Warn if an if=<something> drive was also connected manually |
Date: |
Mon, 22 Jun 2015 16:20:15 +0100 |
On 22 June 2015 at 10:59, Markus Armbruster <address@hidden> wrote:
> What about this instead:
>
> 1. When -device creation connects a qdev_prop_drive property to a
> backend, fail when the backend has a DriveInfo and the DriveInfo has
> type != IF_NONE. Note: the connection is made in parse_drive().
>
> 2. This breaks -drive if=virtio and possibly more. That's because for
> if=virtio, we create input for -device creation that asks to connect
> this IF_VIRTIO drive. To unbreak it, mark the DriveInfo when we create
> such input, and make parse_drive() accept backends so marked. To find
> the places that need to mark, examine users of option group "device". A
> quick, sloppy grep shows a bit over a dozen candidates. Not too bad.
It looks like we missed a bunch of places that need changing, because
we don't only go through parse_drive() for connections made by user
-device creation and places where the code has added something to the
"device" option group. For instance, if=scsi auto-plugin for x86 pc will
end up calling qdev_prop_set_drive() from scsi_bus_legacy_add_drive(),
which then goes through parse_drive().
There are 17 places that call qdev_prop_set_drive(); we could change
them all, but that's the sort of invasive change I was hoping to avoid
with my initial blk_by_legacy_dinfo change...
(I think currently all callers of qdev_prop_set_drive{,_nofail}()
are using it to connect legacy drives, except for hw/usb/dev-storage.c,
which is calling drive_new() to create an if=none drive and then
wiring it up to the device with qdev_prop_set_drive(). This feels
like a fragile assumption for the future, though.)
thanks
-- PMM
Re: [Qemu-block] [Qemu-devel] [PATCH 0/4] block: Improve warnings for doubly-connected drives, Peter Maydell, 2015/06/19