Kconfig 20.2 KB
Newer Older
1
# SPDX-License-Identifier: GPL-2.0-only
Linus Torvalds's avatar
Linus Torvalds committed
2 3 4 5
#
# Block device driver configuration
#

6
menuconfig MD
Linus Torvalds's avatar
Linus Torvalds committed
7
	bool "Multiple devices driver support (RAID and LVM)"
8
	depends on BLOCK
9
	select SRCU
Linus Torvalds's avatar
Linus Torvalds committed
10 11 12 13
	help
	  Support multiple physical spindles through a single logical device.
	  Required for RAID and logical volume management.

14 15
if MD

Linus Torvalds's avatar
Linus Torvalds committed
16 17
config BLK_DEV_MD
	tristate "RAID support"
18
	help
Linus Torvalds's avatar
Linus Torvalds committed
19 20 21 22 23 24 25 26 27 28 29
	  This driver lets you combine several hard disk partitions into one
	  logical block device. This can be used to simply append one
	  partition to another one or to combine several redundant hard disks
	  into a RAID1/4/5 device so as to provide protection against hard
	  disk failures. This is called "Software RAID" since the combining of
	  the partitions is done by the kernel. "Hardware RAID" means that the
	  combining is done by a dedicated controller; if you have such a
	  controller, you do not need to say Y here.

	  More information about Software RAID on Linux is contained in the
	  Software RAID mini-HOWTO, available from
30
	  <https://www.tldp.org/docs.html#howto>. There you will also learn
Linus Torvalds's avatar
Linus Torvalds committed
31 32 33 34
	  where to get the supporting user space utilities raidtools.

	  If unsure, say N.

35 36
config MD_AUTODETECT
	bool "Autodetect RAID arrays during kernel boot"
37
	depends on BLK_DEV_MD=y
38
	default y
39
	help
40
	  If you say Y here, then the kernel will try to autodetect raid
41
	  arrays as part of its boot process.
42

43
	  If you don't use raid and say Y, this autodetection can cause
44 45 46 47 48
	  a several-second delay in the boot time due to various
	  synchronisation steps that are part of this step.

	  If unsure, say Y.

Linus Torvalds's avatar
Linus Torvalds committed
49 50 51
config MD_LINEAR
	tristate "Linear (append) mode"
	depends on BLK_DEV_MD
52
	help
Linus Torvalds's avatar
Linus Torvalds committed
53 54 55 56 57 58 59 60 61 62 63 64
	  If you say Y here, then your multiple devices driver will be able to
	  use the so-called linear mode, i.e. it will combine the hard disk
	  partitions by simply appending one to the other.

	  To compile this as a module, choose M here: the module
	  will be called linear.

	  If unsure, say Y.

config MD_RAID0
	tristate "RAID-0 (striping) mode"
	depends on BLK_DEV_MD
65
	help
Linus Torvalds's avatar
Linus Torvalds committed
66 67 68 69 70 71 72 73
	  If you say Y here, then your multiple devices driver will be able to
	  use the so-called raid0 mode, i.e. it will combine the hard disk
	  partitions into one logical device in such a fashion as to fill them
	  up evenly, one chunk here and one chunk there. This will increase
	  the throughput rate if the partitions reside on distinct disks.

	  Information about Software RAID on Linux is contained in the
	  Software-RAID mini-HOWTO, available from
74
	  <https://www.tldp.org/docs.html#howto>. There you will also
Linus Torvalds's avatar
Linus Torvalds committed
75 76 77 78 79 80 81 82 83 84
	  learn where to get the supporting user space utilities raidtools.

	  To compile this as a module, choose M here: the module
	  will be called raid0.

	  If unsure, say Y.

config MD_RAID1
	tristate "RAID-1 (mirroring) mode"
	depends on BLK_DEV_MD
85
	help
Linus Torvalds's avatar
Linus Torvalds committed
86 87 88 89 90 91 92 93 94 95
	  A RAID-1 set consists of several disk drives which are exact copies
	  of each other.  In the event of a mirror failure, the RAID driver
	  will continue to use the operational mirrors in the set, providing
	  an error free MD (multiple device) to the higher levels of the
	  kernel.  In a set with N drives, the available space is the capacity
	  of a single drive, and the set protects against a failure of (N - 1)
	  drives.

	  Information about Software RAID on Linux is contained in the
	  Software-RAID mini-HOWTO, available from
96
	  <https://www.tldp.org/docs.html#howto>.  There you will also
Linus Torvalds's avatar
Linus Torvalds committed
97 98 99 100 101 102 103 104
	  learn where to get the supporting user space utilities raidtools.

	  If you want to use such a RAID-1 set, say Y.  To compile this code
	  as a module, choose M here: the module will be called raid1.

	  If unsure, say Y.

config MD_RAID10
105 106
	tristate "RAID-10 (mirrored striping) mode"
	depends on BLK_DEV_MD
107
	help
Linus Torvalds's avatar
Linus Torvalds committed
108
	  RAID-10 provides a combination of striping (RAID-0) and
109
	  mirroring (RAID-1) with easier configuration and more flexible
Linus Torvalds's avatar
Linus Torvalds committed
110 111 112 113 114 115 116 117 118
	  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
	  will be used).
	  RAID-10 provides a variety of layouts that provide different levels
	  of redundancy and performance.

	  RAID-10 requires mdadm-1.7.0 or later, available at:

119
	  https://www.kernel.org/pub/linux/utils/raid/mdadm/
Linus Torvalds's avatar
Linus Torvalds committed
120 121 122

	  If unsure, say Y.

123 124
config MD_RAID456
	tristate "RAID-4/RAID-5/RAID-6 mode"
Linus Torvalds's avatar
Linus Torvalds committed
125
	depends on BLK_DEV_MD
126
	select RAID6_PQ
127
	select LIBCRC32C
Dan Williams's avatar
Dan Williams committed
128 129
	select ASYNC_MEMCPY
	select ASYNC_XOR
130 131
	select ASYNC_PQ
	select ASYNC_RAID6_RECOV
132
	help
Linus Torvalds's avatar
Linus Torvalds committed
133 134 135 136 137 138 139 140
	  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
	  of a single drive. For a given sector (row) number, (N - 1) drives
	  contain data sectors, and one drive contains the parity protection.
	  For a RAID-4 set, the parity blocks are present on a single drive,
	  while a RAID-5 set distributes the parity across the drives in one
	  of the available parity distribution methods.

141 142 143 144 145 146 147 148
	  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.

Linus Torvalds's avatar
Linus Torvalds committed
149 150
	  Information about Software RAID on Linux is contained in the
	  Software-RAID mini-HOWTO, available from
151
	  <https://www.tldp.org/docs.html#howto>. There you will also
Linus Torvalds's avatar
Linus Torvalds committed
152 153
	  learn where to get the supporting user space utilities raidtools.

154
	  If you want to use such a RAID-4/RAID-5/RAID-6 set, say Y.  To
Linus Torvalds's avatar
Linus Torvalds committed
155
	  compile this code as a module, choose M here: the module
156
	  will be called raid456.
Linus Torvalds's avatar
Linus Torvalds committed
157 158 159 160 161 162 163

	  If unsure, say Y.

config MD_MULTIPATH
	tristate "Multipath I/O support"
	depends on BLK_DEV_MD
	help
164 165 166 167
	  MD_MULTIPATH provides a simple multi-path personality for use
	  the MD framework.  It is not under active development.  New
	  projects should consider using DM_MULTIPATH which has more
	  features and more testing.
Linus Torvalds's avatar
Linus Torvalds committed
168 169 170 171 172 173 174 175 176 177 178 179

	  If unsure, say N.

config MD_FAULTY
	tristate "Faulty test module for MD"
	depends on BLK_DEV_MD
	help
	  The "faulty" module allows for a block device that occasionally returns
	  read or write errors.  It is useful for testing.

	  In unsure, say N.

180 181

config MD_CLUSTER
182
	tristate "Cluster Support for MD"
183 184 185
	depends on BLK_DEV_MD
	depends on DLM
	default n
186
	help
187 188 189 190 191
	Clustering support for MD devices. This enables locking and
	synchronization across multiple systems on the cluster, so all
	nodes in the cluster can access the MD devices simultaneously.

	This brings the redundancy (and uptime) of RAID levels across the
192 193
	nodes of the cluster. Currently, it can work with raid1 and raid10
	(limited support).
194 195 196

	If unsure, say N.

Kent Overstreet's avatar
Kent Overstreet committed
197 198
source "drivers/md/bcache/Kconfig"

199
config BLK_DEV_DM_BUILTIN
200
	bool
201

Linus Torvalds's avatar
Linus Torvalds committed
202 203
config BLK_DEV_DM
	tristate "Device mapper support"
204
	select BLK_DEV_DM_BUILTIN
205
	depends on DAX || DAX=n
206
	help
Linus Torvalds's avatar
Linus Torvalds committed
207 208 209 210 211 212 213 214 215 216 217 218
	  Device-mapper is a low level volume manager.  It works by allowing
	  people to specify mappings for ranges of logical sectors.  Various
	  mapping types are available, in addition people may write their own
	  modules containing custom mappings if they wish.

	  Higher level volume managers such as LVM2 use this driver.

	  To compile this as a module, choose M here: the module will be
	  called dm-mod.

	  If unsure, say N.

Bryn Reeves's avatar
Bryn Reeves committed
219
config DM_DEBUG
220
	bool "Device mapper debugging support"
221
	depends on BLK_DEV_DM
222
	help
Bryn Reeves's avatar
Bryn Reeves committed
223 224 225 226
	  Enable this for messages that may help debug device-mapper problems.

	  If unsure, say N.

Mikulas Patocka's avatar
Mikulas Patocka committed
227 228
config DM_BUFIO
       tristate
229
       depends on BLK_DEV_DM
230
	help
Mikulas Patocka's avatar
Mikulas Patocka committed
231 232 233 234
	 This interface allows you to do buffered I/O on a device and acts
	 as a cache, holding recently-read blocks in memory and performing
	 delayed writes.

235 236 237
config DM_DEBUG_BLOCK_MANAGER_LOCKING
       bool "Block manager locking"
       depends on DM_BUFIO
238
	help
239 240 241 242
	 Block manager locking can catch various metadata corruption issues.

	 If unsure, say N.

243 244
config DM_DEBUG_BLOCK_STACK_TRACING
       bool "Keep stack trace of persistent data block lock holders"
245
       depends on STACKTRACE_SUPPORT && DM_DEBUG_BLOCK_MANAGER_LOCKING
246
       select STACKTRACE
247
	help
248 249 250 251
	 Enable this for messages that may help debug problems with the
	 block manager locking used by thin provisioning and caching.

	 If unsure, say N.
252

253 254
config DM_BIO_PRISON
       tristate
255
       depends on BLK_DEV_DM
256
	help
257 258 259
	 Some bio locking schemes used by other device-mapper targets
	 including thin provisioning.

260 261
source "drivers/md/persistent-data/Kconfig"

Scott Bauer's avatar
Scott Bauer committed
262 263 264
config DM_UNSTRIPED
       tristate "Unstriped target"
       depends on BLK_DEV_DM
265
	help
Scott Bauer's avatar
Scott Bauer committed
266 267 268
	  Unstripes I/O so it is issued solely on a single drive in a HW
	  RAID0 or dm-striped target.

Linus Torvalds's avatar
Linus Torvalds committed
269 270
config DM_CRYPT
	tristate "Crypt target support"
271
	depends on BLK_DEV_DM
272
	depends on (ENCRYPTED_KEYS || ENCRYPTED_KEYS=n)
273
	depends on (TRUSTED_KEYS || TRUSTED_KEYS=n)
Linus Torvalds's avatar
Linus Torvalds committed
274
	select CRYPTO
275
	select CRYPTO_CBC
276
	select CRYPTO_ESSIV
277
	help
Linus Torvalds's avatar
Linus Torvalds committed
278 279 280 281
	  This device-mapper target allows you to create a device that
	  transparently encrypts the data on it. You'll need to activate
	  the ciphers you're going to use in the cryptoapi configuration.

282
	  For further information on dm-crypt and userspace tools see:
Baruch Siach's avatar
Baruch Siach committed
283
	  <https://gitlab.com/cryptsetup/cryptsetup/wikis/DMCrypt>
Linus Torvalds's avatar
Linus Torvalds committed
284 285 286 287 288 289 290

	  To compile this code as a module, choose M here: the module will
	  be called dm-crypt.

	  If unsure, say N.

config DM_SNAPSHOT
291 292
       tristate "Snapshot target"
       depends on BLK_DEV_DM
Mikulas Patocka's avatar
Mikulas Patocka committed
293
       select DM_BUFIO
294
	help
295
	 Allow volume managers to take writable snapshots of a device.
Linus Torvalds's avatar
Linus Torvalds committed
296

297
config DM_THIN_PROVISIONING
298 299
       tristate "Thin provisioning target"
       depends on BLK_DEV_DM
300
       select DM_PERSISTENT_DATA
301
       select DM_BIO_PRISON
302
	help
303
	 Provides thin provisioning and snapshots that share a data store.
304

Joe Thornber's avatar
Joe Thornber committed
305 306 307 308 309 310
config DM_CACHE
       tristate "Cache target (EXPERIMENTAL)"
       depends on BLK_DEV_DM
       default n
       select DM_PERSISTENT_DATA
       select DM_BIO_PRISON
311
	help
312 313 314 315 316
	 dm-cache attempts to improve performance of a block device by
	 moving frequently used data to a smaller, higher performance
	 device.  Different 'policy' plugins can be used to change the
	 algorithms used to select which blocks are promoted, demoted,
	 cleaned etc.  It supports writeback and writethrough modes.
Joe Thornber's avatar
Joe Thornber committed
317

318 319 320 321
config DM_CACHE_SMQ
       tristate "Stochastic MQ Cache Policy (EXPERIMENTAL)"
       depends on DM_CACHE
       default y
322
	help
323 324 325 326 327 328
	 A cache policy that uses a multiqueue ordered by recent hits
	 to select which blocks should be promoted and demoted.
	 This is meant to be a general purpose policy.  It prioritises
	 reads over writes.  This SMQ policy (vs MQ) offers the promise
	 of less memory utilization, improved performance and increased
	 adaptability in the face of changing workloads.
329

Mikulas Patocka's avatar
Mikulas Patocka committed
330 331 332
config DM_WRITECACHE
	tristate "Writecache target"
	depends on BLK_DEV_DM
333
	help
Mikulas Patocka's avatar
Mikulas Patocka committed
334 335 336 337 338 339 340
	   The writecache target caches writes on persistent memory or SSD.
	   It is intended for databases or other programs that need extremely
	   low commit latency.

	   The writecache target doesn't cache reads because reads are supposed
	   to be cached in standard RAM.

341 342 343 344 345 346 347 348
config DM_EBS
	tristate "Emulated block size target (EXPERIMENTAL)"
	depends on BLK_DEV_DM
	select DM_BUFIO
	help
	  dm-ebs emulates smaller logical block size on backing devices
	  with larger ones (e.g. 512 byte sectors on 4K native disks).

Joe Thornber's avatar
Joe Thornber committed
349 350 351 352 353 354
config DM_ERA
       tristate "Era target (EXPERIMENTAL)"
       depends on BLK_DEV_DM
       default n
       select DM_PERSISTENT_DATA
       select DM_BIO_PRISON
355
	help
356 357 358
	 dm-era tracks which parts of a block device are written to
	 over time.  Useful for maintaining cache coherency when using
	 vendor snapshots.
Joe Thornber's avatar
Joe Thornber committed
359

Nikos Tsironis's avatar
Nikos Tsironis committed
360 361 362 363 364
config DM_CLONE
       tristate "Clone target (EXPERIMENTAL)"
       depends on BLK_DEV_DM
       default n
       select DM_PERSISTENT_DATA
365
	help
366 367 368 369 370
	 dm-clone produces a one-to-one copy of an existing, read-only source
	 device into a writable destination device. The cloned device is
	 visible/mountable immediately and the copy of the source device to the
	 destination device happens in the background, in parallel with user
	 I/O.
Nikos Tsironis's avatar
Nikos Tsironis committed
371

372
	 If unsure, say N.
Nikos Tsironis's avatar
Nikos Tsironis committed
373

Linus Torvalds's avatar
Linus Torvalds committed
374
config DM_MIRROR
375 376
       tristate "Mirror target"
       depends on BLK_DEV_DM
377
	help
378 379
	 Allow volume managers to mirror logical volumes, also
	 needed for live data migration tools such as 'pvmove'.
Linus Torvalds's avatar
Linus Torvalds committed
380

381 382 383 384
config DM_LOG_USERSPACE
	tristate "Mirror userspace logging"
	depends on DM_MIRROR && NET
	select CONNECTOR
385
	help
386 387 388 389 390 391
	  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.

NeilBrown's avatar
NeilBrown committed
392
config DM_RAID
393
       tristate "RAID 1/4/5/6/10 target"
394
       depends on BLK_DEV_DM
395
       select MD_RAID0
396
       select MD_RAID1
397
       select MD_RAID10
NeilBrown's avatar
NeilBrown committed
398 399
       select MD_RAID456
       select BLK_DEV_MD
400
	help
401
	 A dm target that supports RAID1, RAID10, RAID4, RAID5 and RAID6 mappings
NeilBrown's avatar
NeilBrown committed
402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418

	 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
	 of a single drive. For a given sector (row) number, (N - 1) drives
	 contain data sectors, and one drive contains the parity protection.
	 For a RAID-4 set, the parity blocks are present on a single drive,
	 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.

Linus Torvalds's avatar
Linus Torvalds committed
419
config DM_ZERO
420 421
	tristate "Zero target"
	depends on BLK_DEV_DM
422
	help
Linus Torvalds's avatar
Linus Torvalds committed
423 424 425 426
	  A target that discards writes, and returns all zeroes for
	  reads.  Useful in some recovery situations.

config DM_MULTIPATH
427 428
	tristate "Multipath target"
	depends on BLK_DEV_DM
429 430 431 432
	# 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
433
	depends on !SCSI_DH || SCSI
434
	help
Linus Torvalds's avatar
Linus Torvalds committed
435 436
	  Allow volume managers to support multipath hardware.

437 438 439
config DM_MULTIPATH_QL
	tristate "I/O Path Selector based on the number of in-flight I/Os"
	depends on DM_MULTIPATH
440
	help
441 442 443 444 445
	  This path selector is a dynamic load balancer which selects
	  the path with the least number of in-flight I/Os.

	  If unsure, say N.

446 447 448
config DM_MULTIPATH_ST
	tristate "I/O Path Selector based on the service time"
	depends on DM_MULTIPATH
449
	help
450 451 452 453 454 455
	  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.

456 457 458 459 460 461 462 463 464 465 466
config DM_MULTIPATH_HST
	tristate "I/O Path Selector based on historical 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 by comparing estimated service time (based on historical
	  service time).

	  If unsure, say N.

467 468 469 470 471 472 473 474 475
config DM_MULTIPATH_IOA
	tristate "I/O Path Selector based on CPU submission"
	depends on DM_MULTIPATH
	help
	  This path selector selects the path based on the CPU the IO is
	  executed on and the CPU to path mapping setup at path addition time.

	  If unsure, say N.

Heinz Mauelshagen's avatar
Heinz Mauelshagen committed
476
config DM_DELAY
477 478
	tristate "I/O delaying target"
	depends on BLK_DEV_DM
479
	help
Heinz Mauelshagen's avatar
Heinz Mauelshagen committed
480 481 482 483 484
	A target that delays reads and/or writes and can send
	them to different devices.  Useful for testing.

	If unsure, say N.

Bryan Gurney's avatar
Bryan Gurney committed
485 486 487
config DM_DUST
	tristate "Bad sector simulation target"
	depends on BLK_DEV_DM
488
	help
Bryan Gurney's avatar
Bryan Gurney committed
489 490 491 492 493
	A target that simulates bad sector behavior.
	Useful for testing.

	If unsure, say N.

494 495 496
config DM_INIT
	bool "DM \"dm-mod.create=\" parameter support"
	depends on BLK_DEV_DM=y
497
	help
498 499 500
	Enable "dm-mod.create=" parameter to create mapped devices at init time.
	This option is useful to allow mounting rootfs without requiring an
	initramfs.
501
	See Documentation/admin-guide/device-mapper/dm-init.rst for dm-mod.create="..."
502 503 504 505
	format.

	If unsure, say N.

Mike Anderson's avatar
Mike Anderson committed
506
config DM_UEVENT
507 508
	bool "DM uevents"
	depends on BLK_DEV_DM
509
	help
Mike Anderson's avatar
Mike Anderson committed
510 511
	Generate udev events for DM events.

Josef Bacik's avatar
Josef Bacik committed
512
config DM_FLAKEY
513 514
       tristate "Flakey target"
       depends on BLK_DEV_DM
515
	help
516
	 A target that intermittently fails I/O for debugging purposes.
Josef Bacik's avatar
Josef Bacik committed
517

Mikulas Patocka's avatar
Mikulas Patocka committed
518
config DM_VERITY
519 520
	tristate "Verity target support"
	depends on BLK_DEV_DM
Mikulas Patocka's avatar
Mikulas Patocka committed
521 522 523
	select CRYPTO
	select CRYPTO_HASH
	select DM_BUFIO
524
	help
Mikulas Patocka's avatar
Mikulas Patocka committed
525 526 527 528 529 530 531 532 533 534 535 536 537
	  This device-mapper target creates a read-only device that
	  transparently validates the data on one underlying device against
	  a pre-generated tree of cryptographic checksums stored on a second
	  device.

	  You'll need to activate the digests you're going to use in the
	  cryptoapi configuration.

	  To compile this code as a module, choose M here: the module will
	  be called dm-verity.

	  If unsure, say N.

538 539 540 541 542
config DM_VERITY_VERIFY_ROOTHASH_SIG
	def_bool n
	bool "Verity data device root hash signature verification support"
	depends on DM_VERITY
	select SYSTEM_DATA_VERIFICATION
543
	help
544 545 546 547
	  Add ability for dm-verity device to be validated if the
	  pre-generated tree of cryptographic checksums passed has a pkcs#7
	  signature file that can validate the roothash of the tree.

548 549 550 551 552 553 554 555 556 557 558
	  By default, rely on the builtin trusted keyring.

	  If unsure, say N.

config DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING
	bool "Verity data device root hash signature verification with secondary keyring"
	depends on DM_VERITY_VERIFY_ROOTHASH_SIG
	depends on SECONDARY_TRUSTED_KEYRING
	help
	  Rely on the secondary trusted keyring to verify dm-verity signatures.

559 560
	  If unsure, say N.

561 562 563 564 565
config DM_VERITY_FEC
	bool "Verity forward error correction support"
	depends on DM_VERITY
	select REED_SOLOMON
	select REED_SOLOMON_DEC8
566
	help
567 568 569 570 571 572
	  Add forward error correction support to dm-verity. This option
	  makes it possible to use pre-generated error correction data to
	  recover from corrupted blocks.

	  If unsure, say N.

Jim Ramsay's avatar
Jim Ramsay committed
573 574 575
config DM_SWITCH
	tristate "Switch target support (EXPERIMENTAL)"
	depends on BLK_DEV_DM
576
	help
Jim Ramsay's avatar
Jim Ramsay committed
577 578 579 580 581 582 583 584 585 586
	  This device-mapper target creates a device that supports an arbitrary
	  mapping of fixed-size regions of I/O across a fixed set of paths.
	  The path used for any specific region can be switched dynamically
	  by sending the target a message.

	  To compile this code as a module, choose M here: the module will
	  be called dm-switch.

	  If unsure, say N.

Josef Bacik's avatar
Josef Bacik committed
587 588 589
config DM_LOG_WRITES
	tristate "Log writes target support"
	depends on BLK_DEV_DM
590
	help
Josef Bacik's avatar
Josef Bacik committed
591 592 593
	  This device-mapper target takes two devices, one device to use
	  normally, one to log all write operations done to the first device.
	  This is for use by file system developers wishing to verify that
594
	  their fs is writing a consistent file system at all times by allowing
Josef Bacik's avatar
Josef Bacik committed
595 596 597 598 599 600 601 602
	  them to replay the log in a variety of ways and to check the
	  contents.

	  To compile this code as a module, choose M here: the module will
	  be called dm-log-writes.

	  If unsure, say N.

Mikulas Patocka's avatar
Mikulas Patocka committed
603
config DM_INTEGRITY
604
	tristate "Integrity target support"
Mikulas Patocka's avatar
Mikulas Patocka committed
605 606 607 608
	depends on BLK_DEV_DM
	select BLK_DEV_INTEGRITY
	select DM_BUFIO
	select CRYPTO
609
	select CRYPTO_SKCIPHER
Mikulas Patocka's avatar
Mikulas Patocka committed
610
	select ASYNC_XOR
611
	help
612 613 614 615 616 617 618 619 620 621 622
	  This device-mapper target emulates a block device that has
	  additional per-sector tags that can be used for storing
	  integrity information.

	  This integrity target is used with the dm-crypt target to
	  provide authenticated disk encryption or it can be used
	  standalone.

	  To compile this code as a module, choose M here: the module will
	  be called dm-integrity.

623 624 625 626
config DM_ZONED
	tristate "Drive-managed zoned block device target support"
	depends on BLK_DEV_DM
	depends on BLK_DEV_ZONED
Arnd Bergmann's avatar
Arnd Bergmann committed
627
	select CRC32
628
	help
629 630 631 632 633 634 635 636 637 638 639 640
	  This device-mapper target takes a host-managed or host-aware zoned
	  block device and exposes most of its capacity as a regular block
	  device (drive-managed zoned block device) without any write
	  constraints. This is mainly intended for use with file systems that
	  do not natively support zoned block devices but still want to
	  benefit from the increased capacity offered by SMR disks. Other uses
	  by applications using raw block devices (for example object stores)
	  are also possible.

	  To compile this code as a module, choose M here: the module will
	  be called dm-zoned.

641
	  If unsure, say N.
Mikulas Patocka's avatar
Mikulas Patocka committed
642

643
endif # MD