diff options
| author | Andi Kleen <ak@linux.intel.com> | 2010-09-08 10:54:17 -0400 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-10-22 13:16:43 -0400 |
| commit | e52eec13cd6b7f30ab19081b387813e03e592ae5 (patch) | |
| tree | 7b327e0b9283c578fb10922edcf6e10b3b8fd943 /init | |
| parent | 39aba963d937edb20db7d9d93e6dda5d2adfdcdd (diff) | |
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: axboe@kernel.dk
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'init')
| -rw-r--r-- | init/Kconfig | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/init/Kconfig b/init/Kconfig index 137609f33ebc..d742b6fca8d2 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
| @@ -660,8 +660,12 @@ config SYSFS_DEPRECATED | |||
| 660 | depends on SYSFS | 660 | depends on SYSFS |
| 661 | default n | 661 | default n |
| 662 | help | 662 | help |
| 663 | This option switches the layout of the "block" class devices, to not | 663 | This option adds code that switches the layout of the "block" class |
| 664 | show up in /sys/class/block/, but only in /sys/block/. | 664 | devices, to not show up in /sys/class/block/, but only in |
| 665 | /sys/block/. | ||
| 666 | |||
| 667 | This switch is only active when the sysfs.deprecated=1 boot option is | ||
| 668 | passed or the SYSFS_DEPRECATED_V2 option is set. | ||
| 665 | 669 | ||
| 666 | This option allows new kernels to run on old distributions and tools, | 670 | This option allows new kernels to run on old distributions and tools, |
| 667 | which might get confused by /sys/class/block/. Since 2007/2008 all | 671 | which might get confused by /sys/class/block/. Since 2007/2008 all |
| @@ -672,8 +676,22 @@ config SYSFS_DEPRECATED | |||
| 672 | option enabled. | 676 | option enabled. |
| 673 | 677 | ||
| 674 | Only if you are using a new kernel on an old distribution, you might | 678 | Only if you are using a new kernel on an old distribution, you might |
| 675 | need to say Y here. Never say Y, if the original kernel, that came | 679 | need to say Y here. |
| 676 | with your distribution, has not set this option. | 680 | |
| 681 | config SYSFS_DEPRECATED_V2 | ||
| 682 | bool "enabled deprecated sysfs features by default" | ||
| 683 | default n | ||
| 684 | depends on SYSFS | ||
| 685 | depends on SYSFS_DEPRECATED | ||
| 686 | help | ||
| 687 | Enable deprecated sysfs by default. | ||
| 688 | |||
| 689 | See the CONFIG_SYSFS_DEPRECATED option for more details about this | ||
| 690 | option. | ||
| 691 | |||
| 692 | Only if you are using a new kernel on an old distribution, you might | ||
| 693 | need to say Y here. Even then, odds are you would not need it | ||
| 694 | enabled, you can always pass the boot option if absolutely necessary. | ||
| 677 | 695 | ||
| 678 | config RELAY | 696 | config RELAY |
| 679 | bool "Kernel->user space relay support (formerly relayfs)" | 697 | bool "Kernel->user space relay support (formerly relayfs)" |
