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.


Reply via email to