|author||Andi Kleen <email@example.com>||2010-09-08 16:54:17 +0200|
|committer||Greg Kroah-Hartman <firstname.lastname@example.org>||2010-10-22 10:16:43 -0700|
SYSFS: Allow boot time switching between deprecated and modern sysfs layout
I have some systems which need legacy sysfs due to old tools that are making assumptions that a directory can never be a symlink to another directory, and it's a big hazzle to compile separate kernels for them. This patch turns CONFIG_SYSFS_DEPRECATED into a run time option that can be switched on/off the kernel command line. This way the same binary can be used in both cases with just a option on the command line. The old CONFIG_SYSFS_DEPRECATED_V2 option is still there to set the default. I kept the weird name to not break existing config files. Also the compat code can be still completely disabled by undefining CONFIG_SYSFS_DEPRECATED_SWITCH -- just the optimizer takes care of this now instead of lots of ifdefs. This makes the code look nicer. v2: This is an updated version on top of Kay's patch to only handle the block devices. I tested it on my old systems and that seems to work. Cc: email@example.com Signed-off-by: Andi Kleen <firstname.lastname@example.org> Cc: Kay Sievers <email@example.com> Signed-off-by: Greg Kroah-Hartman <firstname.lastname@example.org>
Diffstat (limited to 'init')
1 files changed, 22 insertions, 4 deletions
diff --git a/init/Kconfig b/init/Kconfig
index 137609f33eb..d742b6fca8d 100644
@@ -660,8 +660,12 @@ config SYSFS_DEPRECATED
depends on SYSFS
- This option switches the layout of the "block" class devices, to not
- show up in /sys/class/block/, but only in /sys/block/.
+ This option adds code that switches the layout of the "block" class
+ devices, to not show up in /sys/class/block/, but only in
+ This switch is only active when the sysfs.deprecated=1 boot option is
+ passed or the SYSFS_DEPRECATED_V2 option is set.
This option allows new kernels to run on old distributions and tools,
which might get confused by /sys/class/block/. Since 2007/2008 all
@@ -672,8 +676,22 @@ config SYSFS_DEPRECATED
Only if you are using a new kernel on an old distribution, you might
- need to say Y here. Never say Y, if the original kernel, that came
- with your distribution, has not set this option.
+ need to say Y here.
+ bool "enabled deprecated sysfs features by default"
+ default n
+ depends on SYSFS
+ depends on SYSFS_DEPRECATED
+ Enable deprecated sysfs by default.
+ See the CONFIG_SYSFS_DEPRECATED option for more details about this
+ Only if you are using a new kernel on an old distribution, you might
+ need to say Y here. Even then, odds are you would not need it
+ enabled, you can always pass the boot option if absolutely necessary.
bool "Kernel->user space relay support (formerly relayfs)"