aboutsummaryrefslogtreecommitdiff
path: root/init.d
diff options
context:
space:
mode:
authorWilliam Hubbs <w.d.hubbs@gmail.com>2016-10-04 11:51:24 -0500
committerWilliam Hubbs <w.d.hubbs@gmail.com>2016-10-04 12:06:58 -0500
commit6a0c033a64ce18056625cd37a94b9810dc5784e3 (patch)
treeb90fa247c41567704981e85948b3af1ae4c703e9 /init.d
parent6710316a18c33601e780282e72c60f09b5175280 (diff)
init.d/sysfs: fix efivarfs handling
Separate loading the module, if it isn't built in or loaded, from mounting the file system. This also makes sure the warning about configuring the module in /etc/conf.d/modules or building it in is displayed only if it is loaded successfully. X-Gentoo-Bug: 595836 X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=595836
Diffstat (limited to 'init.d')
-rw-r--r--init.d/sysfs.in16
1 files changed, 7 insertions, 9 deletions
diff --git a/init.d/sysfs.in b/init.d/sysfs.in
index b9478f85..acaae16f 100644
--- a/init.d/sysfs.in
+++ b/init.d/sysfs.in
@@ -98,15 +98,13 @@ mount_misc()
fi
fi
- # setup up kernel support for efivarfs
- # slightly complicated, as if it's build as a module but NOT yet loaded,
- # it will NOT appear in /proc/filesystems yet
- if [ -d /sys/firmware/efi/efivars ] \
- && ! mountinfo -q /sys/firmware/efi/efivars; then
- if modprobe -q efivarfs; then
- ewarn "The efivarfs module needs to be configured in" \
- "@SYSCONFDIR@/conf.d/modules or built in"
- fi
+ # set up kernel support for efivarfs
+ if [ ! -d /sys/module/efivarfs ] && modprobe -q efivarfs; then
+ ewarn "The efivarfs module needs to be configured in " \
+ "@SYSCONFDIR@/conf.d/modules or built in"
+ fi
+ if [ -d /sys/firmware/efi/efivars ] &&
+ ! mountinfo -q /sys/firmware/efi/efivars; then
if grep -qs efivarfs /proc/filesystems; then
ebegin "Mounting efivarfs filesystem"
mount -n -t efivarfs -o ${sysfs_opts} \