block: make gendisk hold a reference to its queue
[linux-2.6.git] / fs / Kconfig
index f07c72b..9fe0b34 100644 (file)
@@ -30,96 +30,61 @@ config FS_MBCACHE
 source "fs/reiserfs/Kconfig"
 source "fs/jfs/Kconfig"
 
-config FS_POSIX_ACL
-# Posix ACL utility routines (for now, only ext2/ext3/jfs/reiserfs/nfs4)
-#
-# NOTE: you can implement Posix ACLs without these helpers (XFS does).
-#      Never use this symbol for ifdefs.
-#
-       bool
-       default n
-
-config FILE_LOCKING
-       bool "Enable POSIX file locking API" if EMBEDDED
-       default y
-       help
-         This option enables standard file locking support, required
-          for filesystems like NFS and for the flock() system
-          call. Disabling this option saves about 11k.
-
 source "fs/xfs/Kconfig"
 source "fs/gfs2/Kconfig"
 source "fs/ocfs2/Kconfig"
 source "fs/btrfs/Kconfig"
+source "fs/nilfs2/Kconfig"
 
 endif # BLOCK
 
-source "fs/notify/Kconfig"
+# Posix ACL utility routines
+#
+# Note: Posix ACLs can be implemented without these helpers.  Never use
+# this symbol for ifdefs in core code.
+#
+config FS_POSIX_ACL
+       def_bool n
 
-config QUOTA
-       bool "Quota support"
-       help
-         If you say Y here, you will be able to set per user limits for disk
-         usage (also called disk quotas). Currently, it works for the
-         ext2, ext3, and reiserfs file system. ext3 also supports journalled
-         quotas for which you don't need to run quotacheck(8) after an unclean
-         shutdown.
-         For further details, read the Quota mini-HOWTO, available from
-         <http://www.tldp.org/docs.html#howto>, or the documentation provided
-         with the quota tools. Probably the quota support is only useful for
-         multi user systems. If unsure, say N.
-
-config QUOTA_NETLINK_INTERFACE
-       bool "Report quota messages through netlink interface"
-       depends on QUOTA && NET
-       help
-         If you say Y here, quota warnings (about exceeding softlimit, reaching
-         hardlimit, etc.) will be reported through netlink interface. If unsure,
-         say Y.
+config EXPORTFS
+       tristate
 
-config PRINT_QUOTA_WARNING
-       bool "Print quota warnings to console (OBSOLETE)"
-       depends on QUOTA
+config FILE_LOCKING
+       bool "Enable POSIX file locking API" if EXPERT
        default y
        help
-         If you say Y here, quota warnings (about exceeding softlimit, reaching
-         hardlimit, etc.) will be printed to the process' controlling terminal.
-         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
-       help
-         This quota format was (is) used by kernels earlier than 2.4.22. If
-         you have quota working and you don't want to convert to new quota
-         format say Y here.
-
-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.
+         This option enables standard file locking support, required
+          for filesystems like NFS and for the flock() system
+          call. Disabling this option saves about 11k.
 
-config QUOTACTL
-       bool
-       depends on XFS_QUOTA || QUOTA
-       default y
+source "fs/notify/Kconfig"
+
+source "fs/quota/Kconfig"
 
-source "fs/autofs/Kconfig"
 source "fs/autofs4/Kconfig"
 source "fs/fuse/Kconfig"
 
+config CUSE
+       tristate "Character device in Userspace support"
+       depends on FUSE_FS
+       help
+         This FUSE extension allows character devices to be
+         implemented in userspace.
+
+         If you want to develop or use userspace character device
+         based on CUSE, answer Y or M.
+
 config GENERIC_ACL
        bool
        select FS_POSIX_ACL
 
+menu "Caches"
+
+source "fs/fscache/Kconfig"
+source "fs/cachefiles/Kconfig"
+
+endmenu
+
 if BLOCK
 menu "CD-ROM/DVD Filesystems"
 
@@ -145,6 +110,7 @@ source "fs/sysfs/Kconfig"
 
 config TMPFS
        bool "Virtual memory file system support (former shm fs)"
+       depends on SHMEM
        help
          Tmpfs is a file system which keeps all files in virtual memory.
 
@@ -158,20 +124,44 @@ config TMPFS
 config TMPFS_POSIX_ACL
        bool "Tmpfs POSIX Access Control Lists"
        depends on TMPFS
+       select TMPFS_XATTR
        select GENERIC_ACL
        help
-         POSIX Access Control Lists (ACLs) support permissions for users and
-         groups beyond the owner/group/world scheme.
+         POSIX Access Control Lists (ACLs) support additional access rights
+         for users and groups beyond the standard owner/group/world scheme,
+         and this option selects support for ACLs specifically for tmpfs
+         filesystems.
+
+         If you've selected TMPFS, it's possible that you'll also need
+         this option as there are a number of Linux distros that require
+         POSIX ACL support under /dev for certain features to work properly.
+         For example, some distros need this feature for ALSA-related /dev
+         files for sound to work properly.  In short, if you're not sure,
+         say Y.
 
          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 TMPFS_XATTR
+       bool "Tmpfs extended attributes"
+       depends on TMPFS
+       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).
+
+         Currently this enables support for the trusted.* and
+         security.* namespaces.
+
+         You need this for POSIX ACL support on tmpfs.
+
+         If unsure, say N.
 
 config HUGETLBFS
        bool "HugeTLB file system support"
-       depends on X86 || IA64 || PPC64 || SPARC64 || (SUPERH && MMU) || \
-                  (S390 && 64BIT) || BROKEN
+       depends on X86 || IA64 || SPARC64 || (S390 && 64BIT) || \
+                  SYS_SUPPORTS_HUGETLBFS || BROKEN
        help
          hugetlbfs is a filesystem backing for HugeTLB pages, based on
          ramfs. For architectures that support it, say Y here and read
@@ -212,6 +202,7 @@ source "fs/efs/Kconfig"
 source "fs/jffs2/Kconfig"
 # UBIFS File system configuration
 source "fs/ubifs/Kconfig"
+source "fs/logfs/Kconfig"
 source "fs/cramfs/Kconfig"
 source "fs/squashfs/Kconfig"
 source "fs/freevxfs/Kconfig"
@@ -220,8 +211,10 @@ source "fs/omfs/Kconfig"
 source "fs/hpfs/Kconfig"
 source "fs/qnx4/Kconfig"
 source "fs/romfs/Kconfig"
+source "fs/pstore/Kconfig"
 source "fs/sysv/Kconfig"
 source "fs/ufs/Kconfig"
+source "fs/exofs/Kconfig"
 
 endif # MISC_FILESYSTEMS
 
@@ -242,99 +235,18 @@ menuconfig NETWORK_FILESYSTEMS
 if NETWORK_FILESYSTEMS
 
 source "fs/nfs/Kconfig"
-
-config NFSD
-       tristate "NFS server support"
-       depends on INET
-       select LOCKD
-       select SUNRPC
-       select EXPORTFS
-       select NFS_ACL_SUPPORT if NFSD_V2_ACL
-       help
-         Choose Y here if you want to allow other computers to access
-         files residing on this system using Sun's Network File System
-         protocol.  To compile the NFS server support as a module,
-         choose M here: the module will be called nfsd.
-
-         You may choose to use a user-space NFS server instead, in which
-         case you can choose N here.
-
-         To export local file systems using NFS, you also need to install
-         user space programs which can be found in the Linux nfs-utils
-         package, available from http://linux-nfs.org/.  More detail about
-         the Linux NFS server implementation is available via the
-         exports(5) man page.
-
-         Below you can choose which versions of the NFS protocol are
-         available to clients mounting the NFS server on this system.
-         Support for NFS version 2 (RFC 1094) is always available when
-         CONFIG_NFSD is selected.
-
-         If unsure, say N.
-
-config NFSD_V2_ACL
-       bool
-       depends on NFSD
-
-config NFSD_V3
-       bool "NFS server support for NFS version 3"
-       depends on NFSD
-       help
-         This option enables support in your system's NFS server for
-         version 3 of the NFS protocol (RFC 1813).
-
-         If unsure, say Y.
-
-config NFSD_V3_ACL
-       bool "NFS server support for the NFSv3 ACL protocol extension"
-       depends on NFSD_V3
-       select NFSD_V2_ACL
-       help
-         Solaris NFS servers support an auxiliary NFSv3 ACL protocol that
-         never became an official part of the NFS version 3 protocol.
-         This protocol extension allows applications on NFS clients to
-         manipulate POSIX Access Control Lists on files residing on NFS
-         servers.  NFS servers enforce POSIX ACLs on local files whether
-         this protocol is available or not.
-
-         This option enables support in your system's NFS server for the
-         NFSv3 ACL protocol extension allowing NFS clients to manipulate
-         POSIX ACLs on files exported by your system's NFS server.  NFS
-         clients which support the Solaris NFSv3 ACL protocol can then
-         access and modify ACLs on your NFS server.
-
-         To store ACLs on your NFS server, you also need to enable ACL-
-         related CONFIG options for your local file systems of choice.
-
-         If unsure, say N.
-
-config NFSD_V4
-       bool "NFS server support for NFS version 4 (EXPERIMENTAL)"
-       depends on NFSD && PROC_FS && EXPERIMENTAL
-       select NFSD_V3
-       select FS_POSIX_ACL
-       select RPCSEC_GSS_KRB5
-       help
-         This option enables support in your system's NFS server for
-         version 4 of the NFS protocol (RFC 3530).
-
-         To export files using NFSv4, you need to install additional user
-         space programs which can be found in the Linux nfs-utils package,
-         available from http://linux-nfs.org/.
-
-         If unsure, say N.
+source "fs/nfsd/Kconfig"
 
 config LOCKD
        tristate
+       depends on FILE_LOCKING
 
 config LOCKD_V4
        bool
        depends on NFSD_V3 || NFS_V3
+       depends on FILE_LOCKING
        default y
 
-config EXPORTFS
-       tristate
-
 config NFS_ACL_SUPPORT
        tristate
        select FS_POSIX_ACL
@@ -344,221 +256,13 @@ config NFS_COMMON
        depends on NFSD || NFS_FS
        default y
 
-config SUNRPC
-       tristate
-
-config SUNRPC_GSS
-       tristate
-
-config SUNRPC_XPRT_RDMA
-       tristate
-       depends on SUNRPC && INFINIBAND && EXPERIMENTAL
-       default SUNRPC && INFINIBAND
-       help
-         This option enables an RPC client transport capability that
-         allows the NFS client to mount servers via an RDMA-enabled
-         transport.
-
-         To compile RPC client RDMA transport support as a module,
-         choose M here: the module will be called xprtrdma.
-
-         If unsure, say N.
-
-config SUNRPC_REGISTER_V4
-       bool "Register local RPC services via rpcbind v4 (EXPERIMENTAL)"
-       depends on SUNRPC && EXPERIMENTAL
-       default n
-       help
-         Sun added support for registering RPC services at an IPv6
-         address by creating two new versions of the rpcbind protocol
-         (RFC 1833).
-
-         This option enables support in the kernel RPC server for
-         registering kernel RPC services via version 4 of the rpcbind
-         protocol.  If you enable this option, you must run a portmapper
-         daemon that supports rpcbind protocol version 4.
-
-         Serving NFS over IPv6 from knfsd (the kernel's NFS server)
-         requires that you enable this option and use a portmapper that
-         supports rpcbind version 4.
-
-         If unsure, say N to get traditional behavior (register kernel
-         RPC services using only rpcbind version 2).  Distributions
-         using the legacy Linux portmapper daemon must say N here.
-
-config RPCSEC_GSS_KRB5
-       tristate "Secure RPC: Kerberos V mechanism (EXPERIMENTAL)"
-       depends on SUNRPC && EXPERIMENTAL
-       select SUNRPC_GSS
-       select CRYPTO
-       select CRYPTO_MD5
-       select CRYPTO_DES
-       select CRYPTO_CBC
-       help
-         Choose Y here to enable Secure RPC using the Kerberos version 5
-         GSS-API mechanism (RFC 1964).
-
-         Secure RPC calls with Kerberos require an auxiliary user-space
-         daemon which may be found in the Linux nfs-utils package
-         available from http://linux-nfs.org/.  In addition, user-space
-         Kerberos support should be installed.
-
-         If unsure, say N.
-
-config RPCSEC_GSS_SPKM3
-       tristate "Secure RPC: SPKM3 mechanism (EXPERIMENTAL)"
-       depends on SUNRPC && EXPERIMENTAL
-       select SUNRPC_GSS
-       select CRYPTO
-       select CRYPTO_MD5
-       select CRYPTO_DES
-       select CRYPTO_CAST5
-       select CRYPTO_CBC
-       help
-         Choose Y here to enable Secure RPC using the SPKM3 public key
-         GSS-API mechansim (RFC 2025).
-
-         Secure RPC calls with SPKM3 require an auxiliary userspace
-         daemon which may be found in the Linux nfs-utils package
-         available from http://linux-nfs.org/.
-
-         If unsure, say N.
-
-config SMB_FS
-       tristate "SMB file system support (OBSOLETE, please use CIFS)"
-       depends on INET
-       select NLS
-       help
-         SMB (Server Message Block) is the protocol Windows for Workgroups
-         (WfW), Windows 95/98, Windows NT and OS/2 Lan Manager use to share
-         files and printers over local networks.  Saying Y here allows you to
-         mount their file systems (often called "shares" in this context) and
-         access them just like any other Unix directory.  Currently, this
-         works only if the Windows machines use TCP/IP as the underlying
-         transport protocol, and not NetBEUI.  For details, read
-         <file:Documentation/filesystems/smbfs.txt> and the SMB-HOWTO,
-         available from <http://www.tldp.org/docs.html#howto>.
-
-         Note: if you just want your box to act as an SMB *server* and make
-         files and printing services available to Windows clients (which need
-         to have a TCP/IP stack), you don't need to say Y here; you can use
-         the program SAMBA (available from <ftp://ftp.samba.org/pub/samba/>)
-         for that.
-
-         General information about how to connect Linux, Windows machines and
-         Macs is on the WWW at <http://www.eats.com/linux_mac_win.html>.
-
-         To compile the SMB support as a module, choose M here:
-         the module will be called smbfs.  Most people say N, however.
-
-config SMB_NLS_DEFAULT
-       bool "Use a default NLS"
-       depends on SMB_FS
-       help
-         Enabling this will make smbfs use nls translations by default. You
-         need to specify the local charset (CONFIG_NLS_DEFAULT) in the nls
-         settings and you need to give the default nls for the SMB server as
-         CONFIG_SMB_NLS_REMOTE.
-
-         The nls settings can be changed at mount time, if your smbmount
-         supports that, using the codepage and iocharset parameters.
-
-         smbmount from samba 2.2.0 or later supports this.
-
-config SMB_NLS_REMOTE
-       string "Default Remote NLS Option"
-       depends on SMB_NLS_DEFAULT
-       default "cp437"
-       help
-         This setting allows you to specify a default value for which
-         codepage the server uses. If this field is left blank no
-         translations will be done by default. The local codepage/charset
-         default to CONFIG_NLS_DEFAULT.
-
-         The nls settings can be changed at mount time, if your smbmount
-         supports that, using the codepage and iocharset parameters.
-
-         smbmount from samba 2.2.0 or later supports this.
-
+source "net/sunrpc/Kconfig"
+source "fs/ceph/Kconfig"
 source "fs/cifs/Kconfig"
-
-config NCP_FS
-       tristate "NCP file system support (to mount NetWare volumes)"
-       depends on IPX!=n || INET
-       help
-         NCP (NetWare Core Protocol) is a protocol that runs over IPX and is
-         used by Novell NetWare clients to talk to file servers.  It is to
-         IPX what NFS is to TCP/IP, if that helps.  Saying Y here allows you
-         to mount NetWare file server volumes and to access them just like
-         any other Unix directory.  For details, please read the file
-         <file:Documentation/filesystems/ncpfs.txt> in the kernel source and
-         the IPX-HOWTO from <http://www.tldp.org/docs.html#howto>.
-
-         You do not have to say Y here if you want your Linux box to act as a
-         file *server* for Novell NetWare clients.
-
-         General information about how to connect Linux, Windows machines and
-         Macs is on the WWW at <http://www.eats.com/linux_mac_win.html>.
-
-         To compile this as a module, choose M here: the module will be called
-         ncpfs.  Say N unless you are connected to a Novell network.
-
 source "fs/ncpfs/Kconfig"
-
-config CODA_FS
-       tristate "Coda file system support (advanced network fs)"
-       depends on INET
-       help
-         Coda is an advanced network file system, similar to NFS in that it
-         enables you to mount file systems of a remote server and access them
-         with regular Unix commands as if they were sitting on your hard
-         disk.  Coda has several advantages over NFS: support for
-         disconnected operation (e.g. for laptops), read/write server
-         replication, security model for authentication and encryption,
-         persistent client caches and write back caching.
-
-         If you say Y here, your Linux box will be able to act as a Coda
-         *client*.  You will need user level code as well, both for the
-         client and server.  Servers are currently user level, i.e. they need
-         no kernel support.  Please read
-         <file:Documentation/filesystems/coda.txt> and check out the Coda
-         home page <http://www.coda.cs.cmu.edu/>.
-
-         To compile the coda client support as a module, choose M here: the
-         module will be called coda.
-
-config AFS_FS
-       tristate "Andrew File System support (AFS) (EXPERIMENTAL)"
-       depends on INET && EXPERIMENTAL
-       select AF_RXRPC
-       help
-         If you say Y here, you will get an experimental Andrew File System
-         driver. It currently only supports unsecured read-only AFS access.
-
-         See <file:Documentation/filesystems/afs.txt> for more information.
-
-         If unsure, say N.
-
-config AFS_DEBUG
-       bool "AFS dynamic debugging"
-       depends on AFS_FS
-       help
-         Say Y here to make runtime controllable debugging messages appear.
-
-         See <file:Documentation/filesystems/afs.txt> for more information.
-
-         If unsure, say N.
-
-config 9P_FS
-       tristate "Plan 9 Resource Sharing Support (9P2000) (Experimental)"
-       depends on INET && NET_9P && EXPERIMENTAL
-       help
-         If you say Y here, you will get experimental support for
-         Plan 9 resource sharing via the 9P2000 protocol.
-
-         See <http://v9fs.sf.net> for more information.
-
-         If unsure, say N.
+source "fs/coda/Kconfig"
+source "fs/afs/Kconfig"
+source "fs/9p/Kconfig"
 
 endif # NETWORK_FILESYSTEMS