[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 27/45] scsi-disk: Preserve tray state on migr
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-devel] [PATCH v2 27/45] scsi-disk: Preserve tray state on migration |
Date: |
Thu, 04 Aug 2011 11:57:30 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20110707 Thunderbird/5.0 |
Am 04.08.2011 08:23, schrieb Hannes Reinecke:
> On 08/03/2011 03:08 PM, Markus Armbruster wrote:
>> Breaks migration of qdevs "scsi-cd" and legacy "scsi-disk" to older
>> versions. We normally use subsections to avoid that. Not possible
>> here, because we don't have a section to begin with. Too bad.
>>
>> Signed-off-by: Markus Armbruster<address@hidden>
>> ---
>> hw/scsi-disk.c | 35 +++++++++++++++++++++++++++++++++++
>> 1 files changed, 35 insertions(+), 0 deletions(-)
>>
>> diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c
>> index f223de6..04e0a77 100644
>> --- a/hw/scsi-disk.c
>> +++ b/hw/scsi-disk.c
>> @@ -1301,6 +1301,39 @@ static int scsi_disk_initfn(SCSIDevice *dev)
>> return scsi_initfn(dev, scsi_type);
>> }
>>
>> +static int scsi_cd_post_load(void *opaque, int version_id)
>> +{
>> + SCSIDiskState *s = opaque;
>> +
>> + bdrv_eject(s->bs, s->tray_open);
>> + bdrv_lock_medium(s->bs, s->tray_locked);
>> + return 0;
>> +}
>> +
>> +static const VMStateDescription vmstate_scsi_cd = {
>> + .name = "scsi-cd",
>> + .version_id = 0,
>> + .minimum_version_id = 0,
>> + .post_load = scsi_cd_post_load,
>> + .fields = (VMStateField[]) {
>> + VMSTATE_BOOL(tray_open, SCSIDiskState),
>> + VMSTATE_BOOL(tray_locked, SCSIDiskState),
>> + VMSTATE_END_OF_LIST()
>> + }
>> +};
>> +
>> +static const VMStateDescription vmstate_scsi_disk = {
>> + .name = "scsi-disk",
>> + .version_id = 0,
>> + .minimum_version_id = 0,
>> + .post_load = scsi_cd_post_load,
>> + .fields = (VMStateField[]) {
>> + VMSTATE_BOOL(tray_open, SCSIDiskState),
>> + VMSTATE_BOOL(tray_locked, SCSIDiskState),
>> + VMSTATE_END_OF_LIST()
>> + }
>> +};
>> +
> And again; if we had just one 'flags' value we would have to save
> only one variable. And wouldn't need to touch this one for future
> states.
I think the policy is that you need to add a subsection anyway, even if
you just add a flag to an existing field.
Kevin
- Re: [Qemu-devel] [PATCH v2 20/45] ide: Provide IDEDeviceInfo method exit(), (continued)
- [Qemu-devel] [PATCH v2 36/45] block: Drop BlockDriverState member removable, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 45/45] ide/atapi scsi-disk: Make monitor eject -f, then change work, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 41/45] block: New bdrv_set_buffer_alignment(), Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 30/45] fdc: Make media change detection more robust, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 44/45] block: New change_media_cb() parameter load, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 27/45] scsi-disk: Preserve tray state on migration, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 28/45] block/raw: Fix to forward method bdrv_media_changed(), Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 38/45] block: Move BlockConf & friends from block_int.h to block.h, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 43/45] nbd: Clean up use of block_int.h, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 31/45] block: Clean up bdrv_flush_all(), Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 17/45] block: Leave enforcing tray lock to device models, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 18/45] block: Drop medium lock tracking, ask device models instead, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 35/45] block: Clean up remaining users of "removable", Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 37/45] block: Show whether the guest ejected the medium in info block, Markus Armbruster, 2011/08/03