I'm no committer, but isn't it nice to close the fd?

Ronald.

On Mon, 26 Oct 2009 07:51:21 +0100, Colin Percival <cperc...@freebsd.org> wrote:

Author: cperciva
Date: Mon Oct 26 06:51:20 2009
New Revision: 198477
URL: http://svn.freebsd.org/changeset/base/198477

Log:
  Eject CDROM after installation if used as source media.
 Submitted by:  randi
  MFC after:    1 month

Modified:
  head/usr.sbin/sysinstall/cdrom.c

Modified: head/usr.sbin/sysinstall/cdrom.c
==============================================================================
--- head/usr.sbin/sysinstall/cdrom.c    Mon Oct 26 00:01:52 2009        
(r198476)
+++ head/usr.sbin/sysinstall/cdrom.c    Mon Oct 26 06:51:20 2009        
(r198477)
@@ -43,6 +43,7 @@
 #include <sys/errno.h>
 #include <sys/param.h>
 #include <sys/wait.h>
+#include <sys/cdio.h>
 #include <unistd.h>
 #include <grp.h>
 #include <fcntl.h>
@@ -58,6 +59,8 @@ static Boolean previouslyMounted; /* Was
 static char mountpoint[MAXPATHLEN] = "/dist";
 int CDROMInitQuiet;
+static void mediaEjectCDROM(Device *dev);
+
 static properties
 read_props(char *name)
 {
@@ -218,4 +221,23 @@ mediaShutdownCDROM(Device *dev)
msgConfirm("Could not unmount the CDROM/DVD from %s: %s", mountpoint, strerror(errno));
     else
        cdromMounted = FALSE;
+
+    mediaEjectCDROM(dev);
+}
+
+static void
+mediaEjectCDROM(Device *dev)
+{
+       int fd = -1;
+
+       msgDebug("Ejecting CDROM/DVD at %s", dev->devname);
+
+       fd = open(dev->devname, O_RDONLY);
+       
+       if (fd < 0)
+ msgDebug("Could not eject the CDROM/DVD from %s: %s", dev->devname, strerror(errno));
+       else {
+               ioctl(fd, CDIOCALLOW);
+               ioctl(fd, CDIOCEJECT);
+       }
 }
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to