From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MEO9F-0001FZ-Qg for qemu-devel@nongnu.org; Wed, 10 Jun 2009 09:47:25 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MEO9A-0001Et-BV for qemu-devel@nongnu.org; Wed, 10 Jun 2009 09:47:24 -0400 Received: from [199.232.76.173] (port=57210 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MEO9A-0001Em-6C for qemu-devel@nongnu.org; Wed, 10 Jun 2009 09:47:20 -0400 Received: from mx2.redhat.com ([66.187.237.31]:46486) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MEO99-0007bM-A0 for qemu-devel@nongnu.org; Wed, 10 Jun 2009 09:47:19 -0400 Message-ID: <4A2FB962.5000206@redhat.com> Date: Wed, 10 Jun 2009 09:47:14 -0400 From: Cole Robinson MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH] don't exit if cdrom media fails to open References: <4A2E6698.30208@gmail.com> <1244586143.7164.25.camel@blaa> <4A2EF18A.8080208@gmail.com> In-Reply-To: <4A2EF18A.8080208@gmail.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: David Ahern Cc: Mark McLoughlin , qemu-devel@nongnu.org David Ahern wrote: > > Mark McLoughlin wrote: >> Hi David, >> >> On Tue, 2009-06-09 at 07:41 -0600, David Ahern wrote: >>> This patch allows a VM to continue even if the cdrom image is not >>> accessible at VM boot time. It allows a boot progression similar to real >>> hardware (e.g., try cd, then disk). >>> >>> For example, >>> >>> qemu-system-x86_64 -cdrom /dev/dvd -hda disk.img -boot dc >>> >>> If there is no media in the tray, qemu currently exits with the message: >>> qemu: could not open disk image /dev/dvd >>> >>> With this patch, the message is still displayed, but qemu continues. It >>> first tries to boot from the cdrom and then falls back to the disk. >>> >>> Signed-off-by: David Ahern >>> >>> --- >>> >>> diff --git a/vl.c b/vl.c >>> index fcf8532..bd3709c 100644 >>> --- a/vl.c >>> +++ b/vl.c >>> @@ -152,6 +152,7 @@ int main(int argc, char **argv) >>> #include "qemu-char.h" >>> #include "cache-utils.h" >>> #include "block.h" >>> +#include "block_int.h" >>> #include "dma.h" >>> #include "audio/audio.h" >>> #include "migration.h" >>> @@ -2551,7 +2552,8 @@ int drive_init(struct drive_opt *arg, int >>> snapshot, void *opaque) >>> if (bdrv_open2(bdrv, file, bdrv_flags, drv) < 0) { >>> fprintf(stderr, "qemu: could not open disk image %s\n", >>> file); >>> - return -1; >>> + if (bdrv->type != BDRV_TYPE_CDROM) >>> + return -1; >> I think Cole's patch here: >> >> https://bugzilla.redhat.com/show_bug.cgi?id=473154#c15 >> >> fixes the same problem? Certainly, it seems to me that any code >> requiring the path to be e.g. /dev/cd is doomed and should be fixed as >> Cole suggests? > > Cole's patch works as well. I don't have a preference for how it gets > done, just that I can start a guest without checking whether there is > media in the tray and adjusting the qemu invocation. > There is an extra benefit to my patch: /dev/dvd will be treated as a host cdrom device, so ejecting media in the guest will be mapped to a physical eject on the host. I'll touch up my patch and send with a Signed-off-by. Thanks, Cole