uninit drive if drive_init failed
PATCH 1/1 uninit drive if drive_init failed
steps to reproduce this bug:
1. virsh attach-disk domain --source imagefile --target sdb --sourcetype file --driver qemu --subdriver qcow2
error: Failed to attach disk
error: operation failed: adding scsi-disk,bus=scsi0.0,scsi-id=1,drive=drive-scsi0-0-1,id=scsi0-0-1 device failed: Property 'scsi-disk.drive' can't find value 'drive-scsi0-0-1'
2. virsh attach-disk domain --source imagefile --target sdb --sourcetype file --driver qemu --subdriver raw
error: Failed to attach disk
error: operation failed: adding scsi-disk,bus=scsi0.0,scsi-id=1,drive=drive-scsi0-0-1,id=scsi0-0-1 device failed: Property 'scsi-disk.drive' can't find value 'drive-scsi0-0-1'
The format of disk image file is raw.
If we run comand 2 only, we will attach the disk successfully.
The reason of this bug is that: we do not remove dinfo from drives and dinfo->bdrv from bdrv_states if we open the disk image file failed.
--- blockdev.c | 11 +++++++++-- 1 files changed, 9 insertions(+), 2 deletions(-)
blockdev.c +9 -2
@@ -527,7 +527,7 @@ DriveInfo *drive_init(QemuOpts *opts, int default_to_scsi) }else if (ro ==1 ) {if (type !=IF_SCSI && type !=IF_VIRTIO && type !=IF_FLOPPY && type !=IF_NONE ) {error_report ("readonly not supported by this bus type" ); -return NULL ; + goto cleanup; } }
@@ -537,12 +537,19 @@ DriveInfo *drive_init(QemuOpts *opts, int default_to_scsi)if (ret <0 ) {error_report ("could not open disk image %s: %s" , file,strerror (-ret)); -return NULL ; + goto cleanup; }if (bdrv_key_required (dinfo->bdrv)) autostart =0 ;return dinfo; + +cleanup: +bdrv_delete (dinfo->bdrv); +QTAILQ_REMOVE (&drives, dinfo, next); +qemu_free (dinfo->id); +qemu_free (dinfo); +return NULL ; }void do_commit (Monitor *mon,const QDict *qdict)
Signature · 1 line
1.7.1
Quoted 9 lines · Wen Congyang
steps to reproduce this bug:
1. virsh attach-disk domain --source imagefile --target sdb --sourcetype file --driver qemu --subdriver qcow2
error: Failed to attach disk
error: operation failed: adding scsi-disk,bus=scsi0.0,scsi-id=1,drive=drive-scsi0-0-1,id=scsi0-0-1 device failed: Property 'scsi-disk.drive' can't find value 'drive-scsi0-0-1'2. virsh attach-disk domain --source imagefile --target sdb --sourcetype file --driver qemu --subdriver raw
error: Failed to attach disk
error: operation failed: adding scsi-disk,bus=scsi0.0,scsi-id=1,drive=drive-scsi0-0-1,id=scsi0-0-1 device failed: Property 'scsi-disk.drive' can't find value 'drive-scsi0-0-1'
Quoted 7 lines
The format of disk image file is raw.
If we run comand 2 only, we will attach the disk successfully.The reason of this bug is that: we do not remove dinfo from drives and
dinfo->bdrvfrombdrv_statesif we open the disk image file failed.Signed-off-by Wen Congyang <[email protected]>
Already fixed in Kevin's block tree and 0.14-rc2 (commit 08931947), although not yet in stable.
Thanks anyway!
At 02/16/2011 05:45 PM, Markus Armbruster Write:
Quoted 14 lines
Quoted 12 lines · Wen Congyang
steps to reproduce this bug:
1. virsh attach-disk domain --source imagefile --target sdb --sourcetype file --driver qemu --subdriver qcow2
error: Failed to attach disk
error: operation failed: adding scsi-disk,bus=scsi0.0,scsi-id=1,drive=drive-scsi0-0-1,id=scsi0-0-1 device failed: Property 'scsi-disk.drive' can't find value 'drive-scsi0-0-1'2. virsh attach-disk domain --source imagefile --target sdb --sourcetype file --driver qemu --subdriver raw
error: Failed to attach disk
error: operation failed: adding scsi-disk,bus=scsi0.0,scsi-id=1,drive=drive-scsi0-0-1,id=scsi0-0-1 device failed: Property 'scsi-disk.drive' can't find value 'drive-scsi0-0-1'The format of disk image file is raw.
If we run comand 2 only, we will attach the disk successfully.
Quoted 7 lines
Quoted 4 lines
The reason of this bug is that: we do not remove dinfo from drives and
dinfo->bdrvfrombdrv_statesif we open the disk image file failed.Signed-off-by Wen Congyang <[email protected]>Already fixed in Kevin's block tree and 0.14-rc2 (commit 08931947), although not yet in stable.
I only use master tree and do not notice that this bug has been fixed. Thank you for pointing it out.
Quoted 3 lines
Thanks anyway!