Blackfin: fix cache Kconfig typo
[safe/jmp/linux-2.6] / drivers / md / Kconfig
index ac43f98..2158377 100644 (file)
@@ -2,17 +2,17 @@
 # Block device driver configuration
 #
 
-menu "Multi-device support (RAID and LVM)"
-
-config MD
+menuconfig MD
        bool "Multiple devices driver support (RAID and LVM)"
+       depends on BLOCK
        help
          Support multiple physical spindles through a single logical device.
          Required for RAID and logical volume management.
 
+if MD
+
 config BLK_DEV_MD
        tristate "RAID support"
-       depends on MD
        ---help---
          This driver lets you combine several hard disk partitions into one
          logical block device. This can be used to simply append one
@@ -30,6 +30,20 @@ config BLK_DEV_MD
 
          If unsure, say N.
 
+config MD_AUTODETECT
+       bool "Autodetect RAID arrays during kernel boot"
+       depends on BLK_DEV_MD=y
+       default y
+       ---help---
+         If you say Y here, then the kernel will try to autodetect raid
+         arrays as part of its boot process. 
+
+         If you don't use raid and say Y, this autodetection can cause 
+         a several-second delay in the boot time due to various
+         synchronisation steps that are part of this step.
+
+         If unsure, say Y.
+
 config MD_LINEAR
        tristate "Linear (append) mode"
        depends on BLK_DEV_MD
@@ -90,7 +104,7 @@ config MD_RAID10
        depends on BLK_DEV_MD && EXPERIMENTAL
        ---help---
          RAID-10 provides a combination of striping (RAID-0) and
-         mirroring (RAID-1) with easier configuration and more flexable
+         mirroring (RAID-1) with easier configuration and more flexible
          layout.
          Unlike RAID-0, but like RAID-1, RAID-10 requires all devices to
          be the same size (or at least, only as much as the smallest device
@@ -104,9 +118,14 @@ config MD_RAID10
 
          If unsure, say Y.
 
-config MD_RAID5
-       tristate "RAID-4/RAID-5 mode"
+config MD_RAID456
+       tristate "RAID-4/RAID-5/RAID-6 mode"
        depends on BLK_DEV_MD
+       select MD_RAID6_PQ
+       select ASYNC_MEMCPY
+       select ASYNC_XOR
+       select ASYNC_PQ
+       select ASYNC_RAID6_RECOV
        ---help---
          A RAID-5 set of N drives with a capacity of C MB per drive provides
          the capacity of C * (N - 1) MB, and protects against a failure
@@ -116,38 +135,51 @@ config MD_RAID5
          while a RAID-5 set distributes the parity across the drives in one
          of the available parity distribution methods.
 
+         A RAID-6 set of N drives with a capacity of C MB per drive
+         provides the capacity of C * (N - 2) MB, and protects
+         against a failure of any two drives. For a given sector
+         (row) number, (N - 2) drives contain data sectors, and two
+         drives contains two independent redundancy syndromes.  Like
+         RAID-5, RAID-6 distributes the syndromes across the drives
+         in one of the available parity distribution methods.
+
          Information about Software RAID on Linux is contained in the
          Software-RAID mini-HOWTO, available from
          <http://www.tldp.org/docs.html#howto>. There you will also
          learn where to get the supporting user space utilities raidtools.
 
-         If you want to use such a RAID-4/RAID-5 set, say Y.  To
+         If you want to use such a RAID-4/RAID-5/RAID-6 set, say Y.  To
          compile this code as a module, choose M here: the module
-         will be called raid5.
+         will be called raid456.
 
          If unsure, say Y.
 
-config MD_RAID6
-       tristate "RAID-6 mode"
-       depends on BLK_DEV_MD
+config MULTICORE_RAID456
+       bool "RAID-4/RAID-5/RAID-6 Multicore processing (EXPERIMENTAL)"
+       depends on MD_RAID456
+       depends on SMP
+       depends on EXPERIMENTAL
        ---help---
-         A RAID-6 set of N drives with a capacity of C MB per drive
-         provides the capacity of C * (N - 2) MB, and protects
-         against a failure of any two drives. For a given sector
-         (row) number, (N - 2) drives contain data sectors, and two
-         drives contains two independent redundancy syndromes.  Like
-         RAID-5, RAID-6 distributes the syndromes across the drives
-         in one of the available parity distribution methods.
+         Enable the raid456 module to dispatch per-stripe raid operations to a
+         thread pool.
 
-         RAID-6 requires mdadm-1.5.0 or later, available at:
+         If unsure, say N.
 
-         ftp://ftp.kernel.org/pub/linux/utils/raid/mdadm/
+config MD_RAID6_PQ
+       tristate
 
-         If you want to use such a RAID-6 set, say Y.  To compile
-         this code as a module, choose M here: the module will be
-         called raid6.
+config ASYNC_RAID6_TEST
+       tristate "Self test for hardware accelerated raid6 recovery"
+       depends on MD_RAID6_PQ
+       select ASYNC_RAID6_RECOV
+       ---help---
+         This is a one-shot self test that permutes through the
+         recovery of all the possible two disk failure scenarios for a
+         N-disk array.  Recovery is performed with the asynchronous
+         raid6 recovery routines, and will optionally use an offload
+         engine if one is available.
 
-         If unsure, say Y.
+         If unsure, say N.
 
 config MD_MULTIPATH
        tristate "Multipath I/O support"
@@ -172,7 +204,6 @@ config MD_FAULTY
 
 config BLK_DEV_DM
        tristate "Device mapper support"
-       depends on MD
        ---help---
          Device-mapper is a low level volume manager.  It works by allowing
          people to specify mappings for ranges of logical sectors.  Various
@@ -186,10 +217,19 @@ config BLK_DEV_DM
 
          If unsure, say N.
 
+config DM_DEBUG
+       boolean "Device mapper debugging support"
+       depends on BLK_DEV_DM
+       ---help---
+         Enable this for messages that may help debug device-mapper problems.
+
+         If unsure, say N.
+
 config DM_CRYPT
        tristate "Crypt target support"
-       depends on BLK_DEV_DM && EXPERIMENTAL
+       depends on BLK_DEV_DM
        select CRYPTO
+       select CRYPTO_CBC
        ---help---
          This device-mapper target allows you to create a device that
          transparently encrypts the data on it. You'll need to activate
@@ -205,36 +245,79 @@ config DM_CRYPT
          If unsure, say N.
 
 config DM_SNAPSHOT
-       tristate "Snapshot target (EXPERIMENTAL)"
-       depends on BLK_DEV_DM && EXPERIMENTAL
+       tristate "Snapshot target"
+       depends on BLK_DEV_DM
        ---help---
-         Allow volume managers to take writeable snapshots of a device.
+         Allow volume managers to take writable snapshots of a device.
 
 config DM_MIRROR
-       tristate "Mirror target (EXPERIMENTAL)"
-       depends on BLK_DEV_DM && EXPERIMENTAL
+       tristate "Mirror target"
+       depends on BLK_DEV_DM
        ---help---
          Allow volume managers to mirror logical volumes, also
          needed for live data migration tools such as 'pvmove'.
 
+config DM_LOG_USERSPACE
+       tristate "Mirror userspace logging (EXPERIMENTAL)"
+       depends on DM_MIRROR && EXPERIMENTAL && NET
+       select CONNECTOR
+       ---help---
+         The userspace logging module provides a mechanism for
+         relaying the dm-dirty-log API to userspace.  Log designs
+         which are more suited to userspace implementation (e.g.
+         shared storage logs) or experimental logs can be implemented
+         by leveraging this framework.
+
 config DM_ZERO
-       tristate "Zero target (EXPERIMENTAL)"
-       depends on BLK_DEV_DM && EXPERIMENTAL
+       tristate "Zero target"
+       depends on BLK_DEV_DM
        ---help---
          A target that discards writes, and returns all zeroes for
          reads.  Useful in some recovery situations.
 
 config DM_MULTIPATH
-       tristate "Multipath target (EXPERIMENTAL)"
-       depends on BLK_DEV_DM && EXPERIMENTAL
+       tristate "Multipath target"
+       depends on BLK_DEV_DM
+       # nasty syntax but means make DM_MULTIPATH independent
+       # of SCSI_DH if the latter isn't defined but if
+       # it is, DM_MULTIPATH must depend on it.  We get a build
+       # error if SCSI_DH=m and DM_MULTIPATH=y
+       depends on SCSI_DH || !SCSI_DH
        ---help---
          Allow volume managers to support multipath hardware.
 
-config DM_MULTIPATH_EMC
-       tristate "EMC CX/AX multipath support (EXPERIMENTAL)"
-       depends on DM_MULTIPATH && BLK_DEV_DM && EXPERIMENTAL
+config DM_MULTIPATH_QL
+       tristate "I/O Path Selector based on the number of in-flight I/Os"
+       depends on DM_MULTIPATH
        ---help---
-         Multipath support for EMC CX/AX series hardware.
+         This path selector is a dynamic load balancer which selects
+         the path with the least number of in-flight I/Os.
 
-endmenu
+         If unsure, say N.
+
+config DM_MULTIPATH_ST
+       tristate "I/O Path Selector based on the service time"
+       depends on DM_MULTIPATH
+       ---help---
+         This path selector is a dynamic load balancer which selects
+         the path expected to complete the incoming I/O in the shortest
+         time.
+
+         If unsure, say N.
+
+config DM_DELAY
+       tristate "I/O delaying target (EXPERIMENTAL)"
+       depends on BLK_DEV_DM && EXPERIMENTAL
+       ---help---
+       A target that delays reads and/or writes and can send
+       them to different devices.  Useful for testing.
+
+       If unsure, say N.
+
+config DM_UEVENT
+       bool "DM uevents (EXPERIMENTAL)"
+       depends on BLK_DEV_DM && EXPERIMENTAL
+       ---help---
+       Generate udev events for DM events.
 
+endif # MD