]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
eject: inform if CD-ROM drive is not ready
authorSami Kerola <kerolasa@iki.fi>
Sun, 10 Jun 2012 20:03:57 +0000 (22:03 +0200)
committerSami Kerola <kerolasa@iki.fi>
Mon, 11 Jun 2012 20:06:05 +0000 (22:06 +0200)
Include file (see linux/cdrom.h lines 395 and 398) suggests ioctl() can
return CDS_NO_INFO and CDS_DRIVE_NOT_READY, which where ignored.  This
commit will tell user what is going on.

The commit will also make eject to crash in ioctl() will return
unexpected value.

Reference: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=include/linux/cdrom.h;h=dfd7f187c351440d2ffa81050e46ed2602877f73;hb=HEAD
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
sys-utils/eject.c

index 4f3fb831f8f086f0f3e1a94388f97602c789f551..68f1f8504f666c8458dc41d0e0aaf92cebc56459 100644 (file)
@@ -429,6 +429,14 @@ static void toggle_tray(int fd)
                if (eject_cdrom(fd))
                        err(EXIT_FAILURE, _("CD-ROM eject command failed"));
                return;
+       case CDS_NO_INFO:
+               warnx(_("no CD-ROM information available"));
+               return;
+       case CDS_DRIVE_NOT_READY:
+               warnx(_("CD-ROM drive is not ready"));
+               return;
+       default:
+               abort();
        }
 #endif