NOMMU: Fix the RomFS Kconfig to ensure at least one backing store is selected
David Howells [Fri, 20 Feb 2009 12:31:54 +0000 (12:31 +0000)]
Fix the configuration of the RomFS to make sure that at least one
backing store method is always selected.  This is done by rendering it
down to a choice item that selects between Block, MTD and both.

This also works correctly in the case that CONFIG_MTD=m: MTD cannot be
selected as a backing store unless CONFIG_ROMFS_FS is also 'm'.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>

fs/romfs/Kconfig

index 802c742..ce2d6bc 100644 (file)
@@ -1,6 +1,6 @@
 config ROMFS_FS
        tristate "ROM file system support"
-       depends on BLOCK
+       depends on BLOCK || MTD
        ---help---
          This is a very small read-only file system mainly intended for
          initial ram disks of installation disks, but it could be used for
@@ -15,9 +15,19 @@ config ROMFS_FS
          If you don't know whether you need it, then you don't need it:
          answer N.
 
-config ROMFS_ON_BLOCK
-       bool "Block device-backed ROM file system support" if (ROMFS_ON_MTD && EMBEDDED)
-       depends on ROMFS_FS && BLOCK
+#
+# Select the backing stores to be supported
+#
+choice
+       prompt "RomFS backing stores"
+       depends on ROMFS_FS
+       default ROMFS_BACKED_BY_BLOCK
+       help
+         Select the backing stores to be supported.
+
+config ROMFS_BACKED_BY_BLOCK
+       bool "Block device-backed ROM file system support"
+       depends on BLOCK
        help
          This permits ROMFS to use block devices buffered through the page
          cache as the medium from which to retrieve data.  It does not allow
@@ -25,9 +35,8 @@ config ROMFS_ON_BLOCK
 
          If unsure, answer Y.
 
-config ROMFS_ON_MTD
+config ROMFS_BACKED_BY_MTD
        bool "MTD-backed ROM file system support"
-       depends on ROMFS_FS
        depends on MTD=y || (ROMFS_FS=m && MTD)
        help
          This permits ROMFS to use MTD based devices directly, without the
@@ -38,3 +47,16 @@ config ROMFS_ON_MTD
 
          If unsure, answer Y.
 
+config ROMFS_BACKED_BY_BOTH
+       bool "Both the above"
+       depends on BLOCK && (MTD=y || (ROMFS_FS=m && MTD))
+endchoice
+
+
+config ROMFS_ON_BLOCK
+       bool
+       default y if ROMFS_BACKED_BY_BLOCK || ROMFS_BACKED_BY_BOTH
+
+config ROMFS_ON_MTD
+       bool
+       default y if ROMFS_BACKED_BY_MTD || ROMFS_BACKED_BY_BOTH