From 54b386221bf8fac4ae3dbbbeb7e588f263a2394f Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Mon, 3 Feb 2003 17:54:09 +0000 Subject: do not eject cdrom when already removed at the end of install (bug #1235) --- perl-install/c/stuff.xs.pl | 2 +- perl-install/install_any.pm | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'perl-install') diff --git a/perl-install/c/stuff.xs.pl b/perl-install/c/stuff.xs.pl index aa9fda760..8111f2eba 100644 --- a/perl-install/c/stuff.xs.pl +++ b/perl-install/c/stuff.xs.pl @@ -591,7 +591,7 @@ rpmvercmp(char *a, char *b); [ qw(int S_IFCHR S_IFBLK S_IFIFO KDSKBENT KT_SPEC NR_KEYS MAX_NR_KEYMAPS BLKRRPART TIOCSCTTY HDIO_GETGEO BLKGETSIZE LOOP_GET_STATUS MS_MGC_VAL MS_RDONLY O_NONBLOCK F_SETFL F_GETFL O_CREAT SECTORSIZE WNOHANG - VT_ACTIVATE VT_WAITACTIVE VT_GETSTATE CDROM_LOCKDOOR CDROMEJECT + VT_ACTIVATE VT_WAITACTIVE VT_GETSTATE CDROM_LOCKDOOR CDROMEJECT CDROM_DRIVE_STATUS CDS_DISC_OK LOG_WARNING LOG_INFO LOG_LOCAL1 ) ], ); diff --git a/perl-install/install_any.pm b/perl-install/install_any.pm index f35dc8a06..2ba152c82 100644 --- a/perl-install/install_any.pm +++ b/perl-install/install_any.pm @@ -546,7 +546,10 @@ sub ejectCdrom(;$) { #- D state if the cdrom is already removed eval { fs::umount("/tmp/image") }; if ($@) { log::l("files still open: ", readlink($_)) foreach map { glob_("$_/fd/*") } glob_("/proc/*") } - eval { ioctl detect_devices::tryOpen($cdrom), c::CDROMEJECT(), 1 }; + eval { + my $dev = detect_devices::tryOpen($cdrom); + ioctl($dev, c::CDROMEJECT(), 1) if ioctl($dev, c::CDROM_DRIVE_STATUS(), 0) == c::CDS_DISC_OK(); + }; } } -- cgit v1.2.1