fs/Kconfig: move btrfs out
[safe/jmp/linux-2.6] / fs / Kconfig
index c189089..51f2aba 100644 (file)
@@ -6,61 +6,9 @@ menu "File systems"
 
 if BLOCK
 
-config EXT2_FS
-       tristate "Second extended fs support"
-       help
-         Ext2 is a standard Linux file system for hard disks.
-
-         To compile this file system support as a module, choose M here: the
-         module will be called ext2.
-
-         If unsure, say Y.
-
-config EXT2_FS_XATTR
-       bool "Ext2 extended attributes"
-       depends on EXT2_FS
-       help
-         Extended attributes are name:value pairs associated with inodes by
-         the kernel or by users (see the attr(5) manual page, or visit
-         <http://acl.bestbits.at/> for details).
-
-         If unsure, say N.
-
-config EXT2_FS_POSIX_ACL
-       bool "Ext2 POSIX Access Control Lists"
-       depends on EXT2_FS_XATTR
-       select FS_POSIX_ACL
-       help
-         Posix Access Control Lists (ACLs) support permissions for users and
-         groups beyond the owner/group/world scheme.
-
-         To learn more about Access Control Lists, visit the Posix ACLs for
-         Linux website <http://acl.bestbits.at/>.
-
-         If you don't know what Access Control Lists are, say N
-
-config EXT2_FS_SECURITY
-       bool "Ext2 Security Labels"
-       depends on EXT2_FS_XATTR
-       help
-         Security labels support alternative access control models
-         implemented by security modules like SELinux.  This option
-         enables an extended attribute handler for file security
-         labels in the ext2 filesystem.
-
-         If you are not using a security module that requires using
-         extended attributes for file security labels, say N.
-
-config EXT2_FS_XIP
-       bool "Ext2 execute in place support"
-       depends on EXT2_FS && MMU
-       help
-         Execute in place can be used on memory-backed block devices. If you
-         enable this option, you can select to mount block devices which are
-         capable of this feature without using the page cache.
-
-         If you do not use a block device that is capable of using this,
-         or if unsure, say N.
+source "fs/ext2/Kconfig"
+source "fs/ext3/Kconfig"
+source "fs/ext4/Kconfig"
 
 config FS_XIP
 # execute in place
@@ -68,361 +16,19 @@ config FS_XIP
        depends on EXT2_FS_XIP
        default y
 
-config EXT3_FS
-       tristate "Ext3 journalling file system support"
-       select JBD
-       help
-         This is the journalling version of the Second extended file system
-         (often called ext3), the de facto standard Linux file system
-         (method to organize files on a storage device) for hard disks.
-
-         The journalling code included in this driver means you do not have
-         to run e2fsck (file system checker) on your file systems after a
-         crash.  The journal keeps track of any changes that were being made
-         at the time the system crashed, and can ensure that your file system
-         is consistent without the need for a lengthy check.
-
-         Other than adding the journal to the file system, the on-disk format
-         of ext3 is identical to ext2.  It is possible to freely switch
-         between using the ext3 driver and the ext2 driver, as long as the
-         file system has been cleanly unmounted, or e2fsck is run on the file
-         system.
-
-         To add a journal on an existing ext2 file system or change the
-         behavior of ext3 file systems, you can use the tune2fs utility ("man
-         tune2fs").  To modify attributes of files and directories on ext3
-         file systems, use chattr ("man chattr").  You need to be using
-         e2fsprogs version 1.20 or later in order to create ext3 journals
-         (available at <http://sourceforge.net/projects/e2fsprogs/>).
-
-         To compile this file system support as a module, choose M here: the
-         module will be called ext3.
-
-config EXT3_FS_XATTR
-       bool "Ext3 extended attributes"
-       depends on EXT3_FS
-       default y
-       help
-         Extended attributes are name:value pairs associated with inodes by
-         the kernel or by users (see the attr(5) manual page, or visit
-         <http://acl.bestbits.at/> for details).
-
-         If unsure, say N.
-
-         You need this for POSIX ACL support on ext3.
-
-config EXT3_FS_POSIX_ACL
-       bool "Ext3 POSIX Access Control Lists"
-       depends on EXT3_FS_XATTR
-       select FS_POSIX_ACL
-       help
-         Posix Access Control Lists (ACLs) support permissions for users and
-         groups beyond the owner/group/world scheme.
-
-         To learn more about Access Control Lists, visit the Posix ACLs for
-         Linux website <http://acl.bestbits.at/>.
-
-         If you don't know what Access Control Lists are, say N
-
-config EXT3_FS_SECURITY
-       bool "Ext3 Security Labels"
-       depends on EXT3_FS_XATTR
-       help
-         Security labels support alternative access control models
-         implemented by security modules like SELinux.  This option
-         enables an extended attribute handler for file security
-         labels in the ext3 filesystem.
-
-         If you are not using a security module that requires using
-         extended attributes for file security labels, say N.
-
-config EXT4_FS
-       tristate "The Extended 4 (ext4) filesystem"
-       select JBD2
-       select CRC16
-       help
-         This is the next generation of the ext3 filesystem.
-
-         Unlike the change from ext2 filesystem to ext3 filesystem,
-         the on-disk format of ext4 is not forwards compatible with
-         ext3; it is based on extent maps and it supports 48-bit
-         physical block numbers.  The ext4 filesystem also supports delayed
-         allocation, persistent preallocation, high resolution time stamps,
-         and a number of other features to improve performance and speed
-         up fsck time.  For more information, please see the web pages at
-         http://ext4.wiki.kernel.org.
-
-         The ext4 filesystem will support mounting an ext3
-         filesystem; while there will be some performance gains from
-         the delayed allocation and inode table readahead, the best
-         performance gains will require enabling ext4 features in the
-         filesystem, or formating a new filesystem as an ext4
-         filesystem initially.
-
-         To compile this file system support as a module, choose M here. The
-         module will be called ext4.
-
-         If unsure, say N.
-
-config EXT4DEV_COMPAT
-       bool "Enable ext4dev compatibility"
-       depends on EXT4_FS
-       help
-         Starting with 2.6.28, the name of the ext4 filesystem was
-         renamed from ext4dev to ext4.  Unfortunately there are some
-         legacy userspace programs (such as klibc's fstype) have
-         "ext4dev" hardcoded.
-
-         To enable backwards compatibility so that systems that are
-         still expecting to mount ext4 filesystems using ext4dev,
-         chose Y here.   This feature will go away by 2.6.31, so
-         please arrange to get your userspace programs fixed!
-
-config EXT4_FS_XATTR
-       bool "Ext4 extended attributes"
-       depends on EXT4_FS
-       default y
-       help
-         Extended attributes are name:value pairs associated with inodes by
-         the kernel or by users (see the attr(5) manual page, or visit
-         <http://acl.bestbits.at/> for details).
-
-         If unsure, say N.
-
-         You need this for POSIX ACL support on ext4.
-
-config EXT4_FS_POSIX_ACL
-       bool "Ext4 POSIX Access Control Lists"
-       depends on EXT4_FS_XATTR
-       select FS_POSIX_ACL
-       help
-         POSIX Access Control Lists (ACLs) support permissions for users and
-         groups beyond the owner/group/world scheme.
-
-         To learn more about Access Control Lists, visit the POSIX ACLs for
-         Linux website <http://acl.bestbits.at/>.
-
-         If you don't know what Access Control Lists are, say N
-
-config EXT4_FS_SECURITY
-       bool "Ext4 Security Labels"
-       depends on EXT4_FS_XATTR
-       help
-         Security labels support alternative access control models
-         implemented by security modules like SELinux.  This option
-         enables an extended attribute handler for file security
-         labels in the ext4 filesystem.
-
-         If you are not using a security module that requires using
-         extended attributes for file security labels, say N.
-
-config JBD
-       tristate
-       help
-         This is a generic journalling layer for block devices.  It is
-         currently used by the ext3 file system, but it could also be
-         used to add journal support to other file systems or block
-         devices such as RAID or LVM.
-
-         If you are using the ext3 file system, you need to say Y here.
-         If you are not using ext3 then you will probably want to say N.
-
-         To compile this device as a module, choose M here: the module will be
-         called jbd.  If you are compiling ext3 into the kernel, you
-         cannot compile this code as a module.
-
-config JBD_DEBUG
-       bool "JBD (ext3) debugging support"
-       depends on JBD && DEBUG_FS
-       help
-         If you are using the ext3 journaled file system (or potentially any
-         other file system/device using JBD), this option allows you to
-         enable debugging output while the system is running, in order to
-         help track down any problems you are having.  By default the
-         debugging output will be turned off.
-
-         If you select Y here, then you will be able to turn on debugging
-         with "echo N > /sys/kernel/debug/jbd/jbd-debug", where N is a
-         number between 1 and 5, the higher the number, the more debugging
-         output is generated.  To turn debugging off again, do
-         "echo 0 > /sys/kernel/debug/jbd/jbd-debug".
-
-config JBD2
-       tristate
-       select CRC32
-       help
-         This is a generic journaling layer for block devices that support
-         both 32-bit and 64-bit block numbers.  It is currently used by
-         the ext4 and OCFS2 filesystems, but it could also be used to add
-         journal support to other file systems or block devices such
-         as RAID or LVM.
-
-         If you are using ext4 or OCFS2, you need to say Y here.
-         If you are not using ext4 or OCFS2 then you will
-         probably want to say N.
-
-         To compile this device as a module, choose M here. The module will be
-         called jbd2.  If you are compiling ext4 or OCFS2 into the kernel,
-         you cannot compile this code as a module.
-
-config JBD2_DEBUG
-       bool "JBD2 (ext4) debugging support"
-       depends on JBD2 && DEBUG_FS
-       help
-         If you are using the ext4 journaled file system (or
-         potentially any other filesystem/device using JBD2), this option
-         allows you to enable debugging output while the system is running,
-         in order to help track down any problems you are having.
-         By default, the debugging output will be turned off.
-
-         If you select Y here, then you will be able to turn on debugging
-         with "echo N > /sys/kernel/debug/jbd2/jbd2-debug", where N is a
-         number between 1 and 5. The higher the number, the more debugging
-         output is generated.  To turn debugging off again, do
-         "echo 0 > /sys/kernel/debug/jbd2/jbd2-debug".
+source "fs/jbd/Kconfig"
+source "fs/jbd2/Kconfig"
 
 config FS_MBCACHE
 # Meta block cache for Extended Attributes (ext2/ext3/ext4)
        tristate
-       depends on EXT2_FS_XATTR || EXT3_FS_XATTR || EXT4_FS_XATTR
-       default y if EXT2_FS=y || EXT3_FS=y || EXT4_FS=y
-       default m if EXT2_FS=m || EXT3_FS=m || EXT4_FS=m
-
-config REISERFS_FS
-       tristate "Reiserfs support"
-       help
-         Stores not just filenames but the files themselves in a balanced
-         tree.  Uses journalling.
-
-         Balanced trees are more efficient than traditional file system
-         architectural foundations.
-
-         In general, ReiserFS is as fast as ext2, but is very efficient with
-         large directories and small files.  Additional patches are needed
-         for NFS and quotas, please see <http://www.namesys.com/> for links.
-
-         It is more easily extended to have features currently found in
-         database and keyword search systems than block allocation based file
-         systems are.  The next version will be so extended, and will support
-         plugins consistent with our motto ``It takes more than a license to
-         make source code open.''
-
-         Read <http://www.namesys.com/> to learn more about reiserfs.
-
-         Sponsored by Threshold Networks, Emusic.com, and Bigstorage.com.
-
-         If you like it, you can pay us to add new features to it that you
-         need, buy a support contract, or pay us to port it to another OS.
-
-config REISERFS_CHECK
-       bool "Enable reiserfs debug mode"
-       depends on REISERFS_FS
-       help
-         If you set this to Y, then ReiserFS will perform every check it can
-         possibly imagine of its internal consistency throughout its
-         operation.  It will also go substantially slower.  More than once we
-         have forgotten that this was on, and then gone despondent over the
-         latest benchmarks.:-) Use of this option allows our team to go all
-         out in checking for consistency when debugging without fear of its
-         effect on end users.  If you are on the verge of sending in a bug
-         report, say Y and you might get a useful error message.  Almost
-         everyone should say N.
-
-config REISERFS_PROC_INFO
-       bool "Stats in /proc/fs/reiserfs"
-       depends on REISERFS_FS && PROC_FS
-       help
-         Create under /proc/fs/reiserfs a hierarchy of files, displaying
-         various ReiserFS statistics and internal data at the expense of
-         making your kernel or module slightly larger (+8 KB). This also
-         increases the amount of kernel memory required for each mount.
-         Almost everyone but ReiserFS developers and people fine-tuning
-         reiserfs or tracing problems should say N.
-
-config REISERFS_FS_XATTR
-       bool "ReiserFS extended attributes"
-       depends on REISERFS_FS
-       help
-         Extended attributes are name:value pairs associated with inodes by
-         the kernel or by users (see the attr(5) manual page, or visit
-         <http://acl.bestbits.at/> for details).
-
-         If unsure, say N.
-
-config REISERFS_FS_POSIX_ACL
-       bool "ReiserFS POSIX Access Control Lists"
-       depends on REISERFS_FS_XATTR
-       select FS_POSIX_ACL
-       help
-         Posix Access Control Lists (ACLs) support permissions for users and
-         groups beyond the owner/group/world scheme.
-
-         To learn more about Access Control Lists, visit the Posix ACLs for
-         Linux website <http://acl.bestbits.at/>.
-
-         If you don't know what Access Control Lists are, say N
+       default y if EXT2_FS=y && EXT2_FS_XATTR
+       default y if EXT3_FS=y && EXT3_FS_XATTR
+       default y if EXT4_FS=y && EXT4_FS_XATTR
+       default m if EXT2_FS_XATTR || EXT3_FS_XATTR || EXT4_FS_XATTR
 
-config REISERFS_FS_SECURITY
-       bool "ReiserFS Security Labels"
-       depends on REISERFS_FS_XATTR
-       help
-         Security labels support alternative access control models
-         implemented by security modules like SELinux.  This option
-         enables an extended attribute handler for file security
-         labels in the ReiserFS filesystem.
-
-         If you are not using a security module that requires using
-         extended attributes for file security labels, say N.
-
-config JFS_FS
-       tristate "JFS filesystem support"
-       select NLS
-       help
-         This is a port of IBM's Journaled Filesystem .  More information is
-         available in the file <file:Documentation/filesystems/jfs.txt>.
-
-         If you do not intend to use the JFS filesystem, say N.
-
-config JFS_POSIX_ACL
-       bool "JFS POSIX Access Control Lists"
-       depends on JFS_FS
-       select FS_POSIX_ACL
-       help
-         Posix Access Control Lists (ACLs) support permissions for users and
-         groups beyond the owner/group/world scheme.
-
-         To learn more about Access Control Lists, visit the Posix ACLs for
-         Linux website <http://acl.bestbits.at/>.
-
-         If you don't know what Access Control Lists are, say N
-
-config JFS_SECURITY
-       bool "JFS Security Labels"
-       depends on JFS_FS
-       help
-         Security labels support alternative access control models
-         implemented by security modules like SELinux.  This option
-         enables an extended attribute handler for file security
-         labels in the jfs filesystem.
-
-         If you are not using a security module that requires using
-         extended attributes for file security labels, say N.
-
-config JFS_DEBUG
-       bool "JFS debugging"
-       depends on JFS_FS
-       help
-         If you are experiencing any problems with the JFS filesystem, say
-         Y here.  This will result in additional debugging messages to be
-         written to the system log.  Under normal circumstances, this
-         results in very little overhead.
-
-config JFS_STATISTICS
-       bool "JFS statistics"
-       depends on JFS_FS
-       help
-         Enabling this option will cause statistics from the JFS file system
-         to be made available to the user in the /proc/fs/jfs/ directory.
+source "fs/reiserfs/Kconfig"
+source "fs/jfs/Kconfig"
 
 config FS_POSIX_ACL
 # Posix ACL utility routines (for now, only ext2/ext3/jfs/reiserfs/nfs4)
@@ -443,132 +49,12 @@ config FILE_LOCKING
 
 source "fs/xfs/Kconfig"
 source "fs/gfs2/Kconfig"
-
-config OCFS2_FS
-       tristate "OCFS2 file system support"
-       depends on NET && SYSFS
-       select CONFIGFS_FS
-       select JBD2
-       select CRC32
-       help
-         OCFS2 is a general purpose extent based shared disk cluster file
-         system with many similarities to ext3. It supports 64 bit inode
-         numbers, and has automatically extending metadata groups which may
-         also make it attractive for non-clustered use.
-
-         You'll want to install the ocfs2-tools package in order to at least
-         get "mount.ocfs2".
-
-         Project web page:    http://oss.oracle.com/projects/ocfs2
-         Tools web page:      http://oss.oracle.com/projects/ocfs2-tools
-         OCFS2 mailing lists: http://oss.oracle.com/projects/ocfs2/mailman/
-
-         For more information on OCFS2, see the file
-         <file:Documentation/filesystems/ocfs2.txt>.
-
-config OCFS2_FS_O2CB
-       tristate "O2CB Kernelspace Clustering"
-       depends on OCFS2_FS
-       default y
-       help
-         OCFS2 includes a simple kernelspace clustering package, the OCFS2
-         Cluster Base.  It only requires a very small userspace component
-         to configure it. This comes with the standard ocfs2-tools package.
-         O2CB is limited to maintaining a cluster for OCFS2 file systems.
-         It cannot manage any other cluster applications.
-
-         It is always safe to say Y here, as the clustering method is
-         run-time selectable.
-
-config OCFS2_FS_USERSPACE_CLUSTER
-       tristate "OCFS2 Userspace Clustering"
-       depends on OCFS2_FS && DLM
-       default y
-       help
-         This option will allow OCFS2 to use userspace clustering services
-         in conjunction with the DLM in fs/dlm.  If you are using a
-         userspace cluster manager, say Y here.
-
-         It is safe to say Y, as the clustering method is run-time
-         selectable.
-
-config OCFS2_FS_STATS
-       bool "OCFS2 statistics"
-       depends on OCFS2_FS
-       default y
-       help
-         This option allows some fs statistics to be captured. Enabling
-         this option may increase the memory consumption.
-
-config OCFS2_DEBUG_MASKLOG
-       bool "OCFS2 logging support"
-       depends on OCFS2_FS
-       default y
-       help
-         The ocfs2 filesystem has an extensive logging system.  The system
-         allows selection of events to log via files in /sys/o2cb/logmask/.
-         This option will enlarge your kernel, but it allows debugging of
-         ocfs2 filesystem issues.
-
-config OCFS2_DEBUG_FS
-       bool "OCFS2 expensive checks"
-       depends on OCFS2_FS
-       default n
-       help
-         This option will enable expensive consistency checks. Enable
-         this option for debugging only as it is likely to decrease
-         performance of the filesystem.
-
-config OCFS2_COMPAT_JBD
-       bool "Use JBD for compatibility"
-       depends on OCFS2_FS
-       default n
-       select JBD
-       help
-         The ocfs2 filesystem now uses JBD2 for its journalling.  JBD2
-         is backwards compatible with JBD.  It is safe to say N here.
-         However, if you really want to use the original JBD, say Y here.
+source "fs/ocfs2/Kconfig"
+source "fs/btrfs/Kconfig"
 
 endif # BLOCK
 
-config DNOTIFY
-       bool "Dnotify support"
-       default y
-       help
-         Dnotify is a directory-based per-fd file change notification system
-         that uses signals to communicate events to user-space.  There exist
-         superior alternatives, but some applications may still rely on
-         dnotify.
-
-         If unsure, say Y.
-
-config INOTIFY
-       bool "Inotify file change notification support"
-       default y
-       ---help---
-         Say Y here to enable inotify support.  Inotify is a file change
-         notification system and a replacement for dnotify.  Inotify fixes
-         numerous shortcomings in dnotify and introduces several new features
-         including multiple file events, one-shot support, and unmount
-         notification.
-
-         For more information, see <file:Documentation/filesystems/inotify.txt>
-
-         If unsure, say Y.
-
-config INOTIFY_USER
-       bool "Inotify support for userspace"
-       depends on INOTIFY
-       default y
-       ---help---
-         Say Y here to enable inotify support for userspace, including the
-         associated system calls.  Inotify allows monitoring of both files and
-         directories via a single open fd.  Events are read from the file
-         descriptor, which is also select()- and poll()-able.
-
-         For more information, see <file:Documentation/filesystems/inotify.txt>
-
-         If unsure, say Y.
+source "fs/notify/Kconfig"
 
 config QUOTA
        bool "Quota support"
@@ -601,6 +87,10 @@ config PRINT_QUOTA_WARNING
          Note that this behavior is currently deprecated and may go away in
          future. Please use notification via netlink socket instead.
 
+# Generic support for tree structured quota files. Seleted when needed.
+config QUOTA_TREE
+        tristate
+
 config QFMT_V1
        tristate "Old quota format support"
        depends on QUOTA
@@ -612,6 +102,7 @@ config QFMT_V1
 config QFMT_V2
        tristate "Quota format v2 support"
        depends on QUOTA
+       select QUOTA_TREE
        help
          This quota format allows using quotas with 32-bit UIDs/GIDs. If you
          need this functionality say Y here.
@@ -665,7 +156,7 @@ config AUTOFS4_FS
          N here.
 
 config FUSE_FS
-       tristate "Filesystem in Userspace support"
+       tristate "FUSE (Filesystem in Userspace) support"
        help
          With FUSE it is possible to implement a fully functional filesystem
          in a userspace program.
@@ -1013,7 +504,20 @@ config CONFIGFS_FS
 
 endmenu
 
-menu "Miscellaneous filesystems"
+menuconfig MISC_FILESYSTEMS
+       bool "Miscellaneous filesystems"
+       default y
+       ---help---
+         Say Y here to get to see options for various miscellaneous
+         filesystems, such as filesystems that came from other
+         operating systems.
+
+         This option alone does not add any kernel code.
+
+         If you say N, all options in this submenu will be skipped and
+         disabled; if unsure, say Y here.
+
+if MISC_FILESYSTEMS
 
 config ADFS_FS
        tristate "ADFS file system support (EXPERIMENTAL)"
@@ -1168,195 +672,7 @@ config EFS_FS
          To compile the EFS file system support as a module, choose M here: the
          module will be called efs.
 
-config JFFS2_FS
-       tristate "Journalling Flash File System v2 (JFFS2) support"
-       select CRC32
-       depends on MTD
-       help
-         JFFS2 is the second generation of the Journalling Flash File System
-         for use on diskless embedded devices. It provides improved wear
-         levelling, compression and support for hard links. You cannot use
-         this on normal block devices, only on 'MTD' devices.
-
-         Further information on the design and implementation of JFFS2 is
-         available at <http://sources.redhat.com/jffs2/>.
-
-config JFFS2_FS_DEBUG
-       int "JFFS2 debugging verbosity (0 = quiet, 2 = noisy)"
-       depends on JFFS2_FS
-       default "0"
-       help
-         This controls the amount of debugging messages produced by the JFFS2
-         code. Set it to zero for use in production systems. For evaluation,
-         testing and debugging, it's advisable to set it to one. This will
-         enable a few assertions and will print debugging messages at the
-         KERN_DEBUG loglevel, where they won't normally be visible. Level 2
-         is unlikely to be useful - it enables extra debugging in certain
-         areas which at one point needed debugging, but when the bugs were
-         located and fixed, the detailed messages were relegated to level 2.
-
-         If reporting bugs, please try to have available a full dump of the
-         messages at debug level 1 while the misbehaviour was occurring.
-
-config JFFS2_FS_WRITEBUFFER
-       bool "JFFS2 write-buffering support"
-       depends on JFFS2_FS
-       default y
-       help
-         This enables the write-buffering support in JFFS2.
-
-         This functionality is required to support JFFS2 on the following
-         types of flash devices:
-           - NAND flash
-           - NOR flash with transparent ECC
-           - DataFlash
-
-config JFFS2_FS_WBUF_VERIFY
-       bool "Verify JFFS2 write-buffer reads"
-       depends on JFFS2_FS_WRITEBUFFER
-       default n
-       help
-         This causes JFFS2 to read back every page written through the
-         write-buffer, and check for errors.
-
-config JFFS2_SUMMARY
-       bool "JFFS2 summary support (EXPERIMENTAL)"
-       depends on JFFS2_FS && EXPERIMENTAL
-       default n
-       help
-         This feature makes it possible to use summary information
-         for faster filesystem mount.
-
-         The summary information can be inserted into a filesystem image
-         by the utility 'sumtool'.
-
-         If unsure, say 'N'.
-
-config JFFS2_FS_XATTR
-       bool "JFFS2 XATTR support (EXPERIMENTAL)"
-       depends on JFFS2_FS && EXPERIMENTAL
-       default n
-       help
-         Extended attributes are name:value pairs associated with inodes by
-         the kernel or by users (see the attr(5) manual page, or visit
-         <http://acl.bestbits.at/> for details).
-
-         If unsure, say N.
-
-config JFFS2_FS_POSIX_ACL
-       bool "JFFS2 POSIX Access Control Lists"
-       depends on JFFS2_FS_XATTR
-       default y
-       select FS_POSIX_ACL
-       help
-         Posix Access Control Lists (ACLs) support permissions for users and
-         groups beyond the owner/group/world scheme.
-
-         To learn more about Access Control Lists, visit the Posix ACLs for
-         Linux website <http://acl.bestbits.at/>.
-
-         If you don't know what Access Control Lists are, say N
-
-config JFFS2_FS_SECURITY
-       bool "JFFS2 Security Labels"
-       depends on JFFS2_FS_XATTR
-       default y
-       help
-         Security labels support alternative access control models
-         implemented by security modules like SELinux.  This option
-         enables an extended attribute handler for file security
-         labels in the jffs2 filesystem.
-
-         If you are not using a security module that requires using
-         extended attributes for file security labels, say N.
-
-config JFFS2_COMPRESSION_OPTIONS
-       bool "Advanced compression options for JFFS2"
-       depends on JFFS2_FS
-       default n
-       help
-         Enabling this option allows you to explicitly choose which
-         compression modules, if any, are enabled in JFFS2. Removing
-         compressors can mean you cannot read existing file systems,
-         and enabling experimental compressors can mean that you
-         write a file system which cannot be read by a standard kernel.
-
-         If unsure, you should _definitely_ say 'N'.
-
-config JFFS2_ZLIB
-       bool "JFFS2 ZLIB compression support" if JFFS2_COMPRESSION_OPTIONS
-       select ZLIB_INFLATE
-       select ZLIB_DEFLATE
-       depends on JFFS2_FS
-       default y
-       help
-         Zlib is designed to be a free, general-purpose, legally unencumbered,
-         lossless data-compression library for use on virtually any computer
-         hardware and operating system. See <http://www.gzip.org/zlib/> for
-         further information.
-
-         Say 'Y' if unsure.
-
-config JFFS2_LZO
-       bool "JFFS2 LZO compression support" if JFFS2_COMPRESSION_OPTIONS
-       select LZO_COMPRESS
-       select LZO_DECOMPRESS
-       depends on JFFS2_FS
-       default n
-       help
-         minilzo-based compression. Generally works better than Zlib.
-
-         This feature was added in July, 2007. Say 'N' if you need
-         compatibility with older bootloaders or kernels.
-
-config JFFS2_RTIME
-       bool "JFFS2 RTIME compression support" if JFFS2_COMPRESSION_OPTIONS
-       depends on JFFS2_FS
-       default y
-       help
-         Rtime does manage to recompress already-compressed data. Say 'Y' if unsure.
-
-config JFFS2_RUBIN
-       bool "JFFS2 RUBIN compression support" if JFFS2_COMPRESSION_OPTIONS
-       depends on JFFS2_FS
-       default n
-       help
-         RUBINMIPS and DYNRUBIN compressors. Say 'N' if unsure.
-
-choice
-       prompt "JFFS2 default compression mode" if JFFS2_COMPRESSION_OPTIONS
-       default JFFS2_CMODE_PRIORITY
-       depends on JFFS2_FS
-       help
-         You can set here the default compression mode of JFFS2 from
-         the available compression modes. Don't touch if unsure.
-
-config JFFS2_CMODE_NONE
-       bool "no compression"
-       help
-         Uses no compression.
-
-config JFFS2_CMODE_PRIORITY
-       bool "priority"
-       help
-         Tries the compressors in a predefined order and chooses the first
-         successful one.
-
-config JFFS2_CMODE_SIZE
-       bool "size (EXPERIMENTAL)"
-       help
-         Tries all compressors and chooses the one which has the smallest
-         result.
-
-config JFFS2_CMODE_FAVOURLZO
-       bool "Favour LZO"
-       help
-         Tries all compressors and chooses the one which has the smallest
-         result but gives some preference to LZO (which has faster
-         decompression) at the expense of size.
-
-endchoice
-
+source "fs/jffs2/Kconfig"
 # UBIFS File system configuration
 source "fs/ubifs/Kconfig"
 
@@ -1380,6 +696,58 @@ config CRAMFS
 
          If unsure, say N.
 
+config SQUASHFS
+       tristate "SquashFS 4.0 - Squashed file system support"
+       depends on BLOCK
+       select ZLIB_INFLATE
+       help
+         Saying Y here includes support for SquashFS 4.0 (a Compressed
+         Read-Only File System).  Squashfs is a highly compressed read-only
+         filesystem for Linux.  It uses zlib compression to compress both
+         files, inodes and directories.  Inodes in the system are very small
+         and all blocks are packed to minimise data overhead. Block sizes
+         greater than 4K are supported up to a maximum of 1 Mbytes (default
+         block size 128K).  SquashFS 4.0 supports 64 bit filesystems and files
+         (larger than 4GB), full uid/gid information, hard links and
+         timestamps.  
+
+         Squashfs is intended for general read-only filesystem use, for
+         archival use (i.e. in cases where a .tar.gz file may be used), and in
+         embedded systems where low overhead is needed.  Further information
+         and tools are available from http://squashfs.sourceforge.net.
+
+         If you want to compile this as a module ( = code which can be
+         inserted in and removed from the running kernel whenever you want),
+         say M here and read <file:Documentation/modules.txt>.  The module
+         will be called squashfs.  Note that the root file system (the one
+         containing the directory /) cannot be compiled as a module.
+
+         If unsure, say N.
+
+config SQUASHFS_EMBEDDED
+
+       bool "Additional option for memory-constrained systems" 
+       depends on SQUASHFS
+       default n
+       help
+         Saying Y here allows you to specify cache size.
+
+         If unsure, say N.
+
+config SQUASHFS_FRAGMENT_CACHE_SIZE
+       int "Number of fragments cached" if SQUASHFS_EMBEDDED
+       depends on SQUASHFS
+       default "3"
+       help
+         By default SquashFS caches the last 3 fragments read from
+         the filesystem.  Increasing this amount may mean SquashFS
+         has to re-read fragments less often from disk, at the expense
+         of extra system memory.  Decreasing this amount will mean
+         SquashFS uses less memory at the expense of extra reads from disk.
+
+         Note there must be at least one cached fragment.  Anything
+         much more than three will probably not make much difference.
+
 config VXFS_FS
        tristate "FreeVxFS file system support (VERITAS VxFS(TM) compatible)"
        depends on BLOCK
@@ -1571,7 +939,7 @@ config UFS_DEBUG
          Y here.  This will result in _many_ additional debugging messages to be
          written to the system log.
 
-endmenu
+endif # MISC_FILESYSTEMS
 
 menuconfig NETWORK_FILESYSTEMS
        bool "Network File Systems"