Patchwork raw-posix: Fix /dev/cdrom magic on OS X

login
register
mail settings
Submitter Kevin Wolf
Date June 12, 2013, 2:22 p.m.
Message ID <1371046972-32056-1-git-send-email-kwolf@redhat.com>
Download mbox | patch
Permalink /patch/250802/
State New
Headers show

Comments

Kevin Wolf - June 12, 2013, 2:22 p.m.
The raw-posix driver has code to provide a /dev/cdrom on OS X even
though it doesn't really exist. However, since commit c66a6157 the real
filename is dismissed after finding it, so opening /dev/cdrom fails.
Put the filename back into the options QDict to make this work again.

Cc: qemu-stable@nongnu.org
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block/raw-posix.c | 1 +
 1 file changed, 1 insertion(+)
Stefan Hajnoczi - June 13, 2013, 8:37 a.m.
On Wed, Jun 12, 2013 at 04:22:52PM +0200, Kevin Wolf wrote:
> The raw-posix driver has code to provide a /dev/cdrom on OS X even
> though it doesn't really exist. However, since commit c66a6157 the real
> filename is dismissed after finding it, so opening /dev/cdrom fails.
> Put the filename back into the options QDict to make this work again.
> 
> Cc: qemu-stable@nongnu.org
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
>  block/raw-posix.c | 1 +
>  1 file changed, 1 insertion(+)

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Andreas Färber - June 13, 2013, 10:42 a.m.
Am 12.06.2013 16:22, schrieb Kevin Wolf:
> The raw-posix driver has code to provide a /dev/cdrom on OS X even
> though it doesn't really exist. However, since commit c66a6157 the real
> filename is dismissed after finding it, so opening /dev/cdrom fails.
> Put the filename back into the options QDict to make this work again.
> 
> Cc: qemu-stable@nongnu.org
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
>  block/raw-posix.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/block/raw-posix.c b/block/raw-posix.c
> index c0ccf27..90ce9f8 100644
> --- a/block/raw-posix.c
> +++ b/block/raw-posix.c
> @@ -1350,6 +1350,7 @@ static int hdev_open(BlockDriverState *bs, QDict *options, int flags)
>                  qemu_close(fd);
>              }
>              filename = bsdPath;
> +            qdict_put(options, "filename", qstring_from_str(filename));
>          }
>  
>          if ( mediaIterator )

On Mac OS X v10.5.8 ppc64 I get:

qemu-system-x86_64: -cdrom /dev/cdrom: could not open disk image
/dev/cdrom: No such file or directory

On ppc I get a crash even without options, seems unrelated though.

Andreas

Patch

diff --git a/block/raw-posix.c b/block/raw-posix.c
index c0ccf27..90ce9f8 100644
--- a/block/raw-posix.c
+++ b/block/raw-posix.c
@@ -1350,6 +1350,7 @@  static int hdev_open(BlockDriverState *bs, QDict *options, int flags)
                 qemu_close(fd);
             }
             filename = bsdPath;
+            qdict_put(options, "filename", qstring_from_str(filename));
         }
 
         if ( mediaIterator )