[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2] raw-posix: Detect CDROM via ioctl
From: |
Christoph Hellwig |
Subject: |
Re: [Qemu-devel] [PATCH v2] raw-posix: Detect CDROM via ioctl |
Date: |
Tue, 12 Jan 2010 18:11:14 +0100 |
User-agent: |
Mutt/1.3.28i |
On Tue, Jan 12, 2010 at 10:29:11AM -0500, Cole Robinson wrote:
> static int cdrom_probe_device(const char *filename)
> {
> + int fd, ret, prio;
> +
> if (strstart(filename, "/dev/cd", NULL))
> - return 100;
> - return 0;
> + prio = 50;
> +
> + fd = open(filename, O_RDONLY | O_NONBLOCK);
> + if (fd < 0) {
> + goto out;
> + }
> +
> + /* Attempt to detect via a CDROM specific ioctl */
> + ret = ioctl(fd, CDROM_DRIVE_STATUS, CDSL_CURRENT);
> + if (!(ret < 0 && errno == EINVAL))
> + prio = 100;
> +
> + close(fd);
> +out:
> + return prio;
> }
Looks good. We'll now get an open each from the cdrom and floppy
drivers for each image we're trying to open, but I guess that should be
fine.