diff options
author | Pascal Rigaux <pixel@mandriva.com> | 2001-09-09 17:33:59 +0000 |
---|---|---|
committer | Pascal Rigaux <pixel@mandriva.com> | 2001-09-09 17:33:59 +0000 |
commit | b87a0f41b1d394c9972ceda81092ac8a1e60cde9 (patch) | |
tree | 5e34e4e64d0309b7a75616ff64141cb69707881c | |
parent | bb4eb6bb98e98b33e83ba4ae934049a6f2cac4e0 (diff) | |
download | drakx-b87a0f41b1d394c9972ceda81092ac8a1e60cde9.tar drakx-b87a0f41b1d394c9972ceda81092ac8a1e60cde9.tar.gz drakx-b87a0f41b1d394c9972ceda81092ac8a1e60cde9.tar.bz2 drakx-b87a0f41b1d394c9972ceda81092ac8a1e60cde9.tar.xz drakx-b87a0f41b1d394c9972ceda81092ac8a1e60cde9.zip |
(ejectCdrom): fix D state on exit
-rw-r--r-- | perl-install/install_any.pm | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/perl-install/install_any.pm b/perl-install/install_any.pm index 56f469594..55500ba91 100644 --- a/perl-install/install_any.pm +++ b/perl-install/install_any.pm @@ -479,10 +479,13 @@ sub unlockCdrom(;$) { sub ejectCdrom(;$) { my ($cdrom) = @_; getFile("XXX"); #- close still opened filehandle - $cdrom or cat_("/proc/mounts") =~ m,(/(?:dev|tmp)/\S+)\s+(?:/mnt/cdrom|/tmp/image), and $cdrom = $1; - my $f = eval { $cdrom && detect_devices::tryOpen($cdrom) } or return; - eval { fs::umount("/tmp/image") }; - ioctl $f, c::CDROMEJECT(), 1; + $cdrom ||= $1 if cat_("/proc/mounts") =~ m,(/(?:dev|tmp)/\S+)\s+(?:/mnt/cdrom|/tmp/image),; + if ($cdrom) { + #- umount BEFORE opening the cdrom device otherwise the umount will + #- D state if the cdrom is already removed + eval { fs::umount("/tmp/image") }; + eval { ioctl detect_devices::tryOpen($cdrom), c::CDROMEJECT(), 1 }; + } } sub setupFB { |