Run mdev -s after modules are loaded
authorRichard Yao <ryao@cs.stonybrook.edu>
Fri, 20 Jul 2012 00:34:07 +0000 (20:34 -0400)
committerRichard Yao <ryao@cs.stonybrook.edu>
Fri, 20 Jul 2012 02:59:30 +0000 (22:59 -0400)
Running `mdev -s` will ensure that device nodes are properly initialized.
It does not function as a netlink hotplug daemon. We must run it after
the modules are loaded to ensure that /dev/zfs has been created before
userland programs attempt to use it.

defaults/linuxrc

index 90099c854d48a33254f5ef73b7061335b7e956f4..f434339d128d00f5826f20ec19d2504e79777dcd 100755 (executable)
@@ -293,7 +293,7 @@ mount_devfs
 # Mount sysfs
 mount_sysfs
 
-# Start mdev
+# Initialize mdev
 if [ "${KV_2_6_OR_GREATER}" ]
 then
        good_msg 'Activating mdev'
@@ -303,9 +303,6 @@ then
 
        # Setup hotplugging for firmware loading
        echo /sbin/mdev > /proc/sys/kernel/hotplug
-
-       # Setup mdev netlink socket daemon
-       ( cd /sys && mdev -s ) || bad_msg "Failed to receive dynamic updates from mdev"
 fi
 
 # Load modules listed in MY_HWOPTS if /lib/modules exists for the running kernel
@@ -329,6 +326,12 @@ else
        good_msg 'Skipping module load; no modules in the ramdisk!'
 fi
 
+# Ensure that device nodes are properly configured
+if [ "${KV_2_6_OR_GREATER}" ]
+then
+       mdev -s || bad_msg "mdev -s failed"
+fi
+
 # Apply scan delay if specified
 sdelay