[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v5] block/raw-posix.c: Fixes raw_getlength() on
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH v5] block/raw-posix.c: Fixes raw_getlength() on Mac OS X so that it reports the correct length of a real CD |
Date: |
Tue, 13 Jan 2015 18:34:28 +0000 |
On 13 January 2015 at 18:26, Programmingkid <address@hidden> wrote:
> Allows for using real cdrom disc in QEMU under Mac OS X.
>
> This command was used to see if this patch worked:
> ./qemu-system-i386 -drive if=none,id=drive0,file=/dev/null,format=raw
>
> Signed-off-by: John Arbuckle <address@hidden>
>
> ---
> Replaced -errno with 0 for ioctl() failure return value.
> "make check" now passes with this patch.
>
>
> block/raw-posix.c | 18 +++++++++++++++++-
> configure | 2 +-
> 2 files changed, 18 insertions(+), 2 deletions(-)
>
> diff --git a/block/raw-posix.c b/block/raw-posix.c
> index e51293a..16fa0a4 100644
> --- a/block/raw-posix.c
> +++ b/block/raw-posix.c
> @@ -1312,7 +1312,23 @@ again:
> if (size == 0)
> #endif
> #if defined(__APPLE__) && defined(__MACH__)
> - size = LLONG_MAX;
> + {
> + uint64_t sectors = 0;
> + uint32_t sector_size = 0;
> +
> + /* Query the number of sectors on the disk */
> + ret = ioctl(fd, DKIOCGETBLOCKCOUNT, §ors);
> + if (ret == -1) {
> + return 0;
We should be falling back to lseek, not returning 0...
thanks
-- PMM