mdev: reinstate "follow symlinks" flag, this time with explanation
authorDenis Vlasenko <vda.linux@googlemail.com>
Sun, 6 Jul 2008 17:00:49 +0000 (17:00 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Sun, 6 Jul 2008 17:00:49 +0000 (17:00 -0000)
util-linux/mdev.c

index 9c4938a706aa6f0eaa5933e4f6f9ac3c518146a0..a4c0520ac302179d7ee58a77de0b68b8f8a2cc9e 100644 (file)
@@ -420,14 +420,17 @@ int mdev_main(int argc, char **argv)
                root_major = major(st.st_dev);
                root_minor = minor(st.st_dev);
 
+               /* ACTION_FOLLOWLINKS is needed since in newer kernels
+                * /sys/block/loop* (for example) are symlinks to dirs,
+                * not real directories.
+                * (kernel's CONFIG_SYSFS_DEPRECATED makes them real dirs,
+                * but we can't enforce that on users) */
                recursive_action("/sys/block",
-                       ACTION_RECURSE /* no ACTION_FOLLOWLINKS! */,
+                       ACTION_RECURSE | ACTION_FOLLOWLINKS,
                        fileAction, dirAction, temp, 0);
-
                recursive_action("/sys/class",
-                       ACTION_RECURSE /* no ACTION_FOLLOWLINKS! */,
+                       ACTION_RECURSE | ACTION_FOLLOWLINKS,
                        fileAction, dirAction, temp, 0);
-
        } else {
                /* Hotplug:
                 * env ACTION=... DEVPATH=... mdev