Hi guys, On shutdown we unmount/remount most filesystems. However, we make exception fro the "api" filesystems as they might still be useful and they are anyway not backed by a block device. The problem is that umount does not easily let us make exception based on mountpoints, but we have to use mounttype instead. For /sys and /proc this is ok, but /dev might be tmpfs, so we have until now avoided unmounting any tmpfs filesystems. This might be a problem if a tmpfs system is a submount of a blockdevice, as this will block the unmounting of the parent device. The attached patch (originally by Gerardo) fixes this problem when /dev is mounted as devtmpfs and keeps the old behavior if /dev is tmpfs. I made some adjustments, as noted in the commit message (Gerardo, please let me know if this looks ok with you). If someone knows of any reason not to unmount tmpfs or ramfs on shutdown, please speak up. Cheers, Tom PS Our kill and unmount logic is very fragile, and could do with a refactor, but that is a project for another day...
From d6650a257eac676b70fe2de9a679b6f223ea2673 Mon Sep 17 00:00:00 2001 From: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> Date: Sun, 4 Jul 2010 17:16:35 -0300 Subject: [PATCH] umount tmpfs on shutdown if devtmpfs is used
This fixes FS#19783. [tomegun: some adjustments: - always umount ramfs as we never mount /dev as ramfs; and - don't umount /dev/pts as it might still be useful.] Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> Signed-off-by: Tom Gundersen <teg@jklm.no> --- rc.shutdown | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/rc.shutdown b/rc.shutdown index 7bc2243..3ee354a 100755 --- a/rc.shutdown +++ b/rc.shutdown @@ -48,7 +48,11 @@ if [[ $USELVM =~ yes|YES && -x /sbin/lvm && -d /sys/block ]]; then fi stat_busy "Unmounting Filesystems" -/bin/umount -a -r -t noramfs,notmpfs,nosysfs,noproc,nodevtmpfs -O no_netdev +if grep -q devtmpfs /proc/filesystems 2>/dev/null; then + /bin/umount -a -r -t nosysfs,noproc,nodevtmpfs,nodevpts -O no_netdev +else + /bin/umount -a -r -t notmpfs,nosysfs,noproc,nodevpts -O no_netdev +fi stat_done # Kill non-root encrypted partition mappings -- 1.7.4.4