Kconfig 20.6 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
Linus Torvalds's avatar
Linus Torvalds committed
9 10 11 12
	help
	  Support multiple physical spindles through a single logical device.
	  Required for RAID and logical volume management.

13 14
if MD

Linus Torvalds's avatar
Linus Torvalds committed
15 16
config BLK_DEV_MD
	tristate "RAID support"
17
	select BLOCK_HOLDER_DEPRECATED if SYSFS
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
config MD_LINEAR
50
	tristate "Linear (append) mode (deprecated)"
Linus Torvalds's avatar
Linus Torvalds committed
51
	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

	  If unsure, say Y.

config MD_MULTIPATH
161
	tristate "Multipath I/O support (deprecated)"
Linus Torvalds's avatar
Linus Torvalds committed
162 163
	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

	  If unsure, say N.

config MD_FAULTY
172
	tristate "Faulty test module for MD (deprecated)"
Linus Torvalds's avatar
Linus Torvalds committed
173 174 175 176 177 178 179
	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 BLOCK_HOLDER_DEPRECATED if SYSFS
205
	select BLK_DEV_DM_BUILTIN
206
	select BLK_MQ_STACKING
207
	depends on DAX || DAX=n
208
	help
Linus Torvalds's avatar
Linus Torvalds committed
209 210 211 212 213 214 215 216 217 218 219 220
	  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
221
config DM_DEBUG
222
	bool "Device mapper debugging support"
223
	depends on BLK_DEV_DM
224
	help
Bryn Reeves's avatar
Bryn Reeves committed
225 226 227 228
	  Enable this for messages that may help debug device-mapper problems.

	  If unsure, say N.

Mikulas Patocka's avatar
Mikulas Patocka committed
229 230
config DM_BUFIO
       tristate
231
       depends on BLK_DEV_DM
232
	help
Mikulas Patocka's avatar
Mikulas Patocka committed
233 234 235 236
	 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.

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

	 If unsure, say N.

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

	 If unsure, say N.
254

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

262 263
source "drivers/md/persistent-data/Kconfig"

Scott Bauer's avatar
Scott Bauer committed
264 265 266
config DM_UNSTRIPED
       tristate "Unstriped target"
       depends on BLK_DEV_DM
267
	help
Scott Bauer's avatar
Scott Bauer committed
268 269 270
	  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
271 272
config DM_CRYPT
	tristate "Crypt target support"
273
	depends on BLK_DEV_DM
274
	depends on (ENCRYPTED_KEYS || ENCRYPTED_KEYS=n)
275
	depends on (TRUSTED_KEYS || TRUSTED_KEYS=n)
Linus Torvalds's avatar
Linus Torvalds committed
276
	select CRYPTO
277
	select CRYPTO_CBC
278
	select CRYPTO_ESSIV
279
	help
Linus Torvalds's avatar
Linus Torvalds committed
280 281 282 283
	  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.

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

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

	  If unsure, say N.

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

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

Joe Thornber's avatar
Joe Thornber committed
307 308 309 310 311 312
config DM_CACHE
       tristate "Cache target (EXPERIMENTAL)"
       depends on BLK_DEV_DM
       default n
       select DM_PERSISTENT_DATA
       select DM_BIO_PRISON
313
	help
314 315 316 317 318
	 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
319

320 321 322 323
config DM_CACHE_SMQ
       tristate "Stochastic MQ Cache Policy (EXPERIMENTAL)"
       depends on DM_CACHE
       default y
324
	help
325 326 327 328 329 330
	 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.
331

Mikulas Patocka's avatar
Mikulas Patocka committed
332 333 334
config DM_WRITECACHE
	tristate "Writecache target"
	depends on BLK_DEV_DM
335
	help
Mikulas Patocka's avatar
Mikulas Patocka committed
336 337 338 339 340 341 342
	   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.

343 344
config DM_EBS
	tristate "Emulated block size target (EXPERIMENTAL)"
345
	depends on BLK_DEV_DM && !HIGHMEM
346 347 348 349 350
	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
351 352 353 354 355 356
config DM_ERA
       tristate "Era target (EXPERIMENTAL)"
       depends on BLK_DEV_DM
       default n
       select DM_PERSISTENT_DATA
       select DM_BIO_PRISON
357
	help
358 359 360
	 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
361

Nikos Tsironis's avatar
Nikos Tsironis committed
362 363 364 365 366
config DM_CLONE
       tristate "Clone target (EXPERIMENTAL)"
       depends on BLK_DEV_DM
       default n
       select DM_PERSISTENT_DATA
367
	help
368 369 370 371 372
	 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
373

374
	 If unsure, say N.
Nikos Tsironis's avatar
Nikos Tsironis committed
375

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

383 384 385 386
config DM_LOG_USERSPACE
	tristate "Mirror userspace logging"
	depends on DM_MIRROR && NET
	select CONNECTOR
387
	help
388 389 390 391 392 393
	  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
394
config DM_RAID
395
       tristate "RAID 1/4/5/6/10 target"
396
       depends on BLK_DEV_DM
397
       select MD_RAID0
398
       select MD_RAID1
399
       select MD_RAID10
NeilBrown's avatar
NeilBrown committed
400 401
       select MD_RAID456
       select BLK_DEV_MD
402
	help
403
	 A dm target that supports RAID1, RAID10, RAID4, RAID5 and RAID6 mappings
NeilBrown's avatar
NeilBrown committed
404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420

	 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
421
config DM_ZERO
422 423
	tristate "Zero target"
	depends on BLK_DEV_DM
424
	help
Linus Torvalds's avatar
Linus Torvalds committed
425 426 427 428
	  A target that discards writes, and returns all zeroes for
	  reads.  Useful in some recovery situations.

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

439 440 441
config DM_MULTIPATH_QL
	tristate "I/O Path Selector based on the number of in-flight I/Os"
	depends on DM_MULTIPATH
442
	help
443 444 445 446 447
	  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.

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

458 459 460 461 462 463 464 465 466 467 468
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.

469 470 471 472 473 474 475 476 477
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
478
config DM_DELAY
479 480
	tristate "I/O delaying target"
	depends on BLK_DEV_DM
481
	help
Heinz Mauelshagen's avatar
Heinz Mauelshagen committed
482 483 484 485 486
	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
487 488 489
config DM_DUST
	tristate "Bad sector simulation target"
	depends on BLK_DEV_DM
490
	help
Bryan Gurney's avatar
Bryan Gurney committed
491 492 493 494 495
	A target that simulates bad sector behavior.
	Useful for testing.

	If unsure, say N.

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

	If unsure, say N.

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

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

Mikulas Patocka's avatar
Mikulas Patocka committed
520
config DM_VERITY
521 522
	tristate "Verity target support"
	depends on BLK_DEV_DM
Mikulas Patocka's avatar
Mikulas Patocka committed
523 524 525
	select CRYPTO
	select CRYPTO_HASH
	select DM_BUFIO
526
	help
Mikulas Patocka's avatar
Mikulas Patocka committed
527 528 529 530 531 532 533 534 535 536 537 538 539
	  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.

540 541 542 543 544
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
545
	help
546 547 548 549
	  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.

550 551 552 553 554 555 556 557 558 559 560
	  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.

561 562
	  If unsure, say N.

563 564 565 566 567
config DM_VERITY_FEC
	bool "Verity forward error correction support"
	depends on DM_VERITY
	select REED_SOLOMON
	select REED_SOLOMON_DEC8
568
	help
569 570 571 572 573 574
	  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
575 576 577
config DM_SWITCH
	tristate "Switch target support (EXPERIMENTAL)"
	depends on BLK_DEV_DM
578
	help
Jim Ramsay's avatar
Jim Ramsay committed
579 580 581 582 583 584 585 586 587 588
	  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
589 590 591
config DM_LOG_WRITES
	tristate "Log writes target support"
	depends on BLK_DEV_DM
592
	help
Josef Bacik's avatar
Josef Bacik committed
593 594 595
	  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
596
	  their fs is writing a consistent file system at all times by allowing
Josef Bacik's avatar
Josef Bacik committed
597 598 599 600 601 602 603 604
	  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
605
config DM_INTEGRITY
606
	tristate "Integrity target support"
Mikulas Patocka's avatar
Mikulas Patocka committed
607 608 609 610
	depends on BLK_DEV_DM
	select BLK_DEV_INTEGRITY
	select DM_BUFIO
	select CRYPTO
611
	select CRYPTO_SKCIPHER
Mikulas Patocka's avatar
Mikulas Patocka committed
612
	select ASYNC_XOR
613
	select DM_AUDIT if AUDIT
614
	help
615 616 617 618 619 620 621 622 623 624 625
	  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.

626 627 628 629
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
630
	select CRC32
631
	help
632 633 634 635 636 637 638 639 640 641 642 643
	  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.

644
	  If unsure, say N.
Mikulas Patocka's avatar
Mikulas Patocka committed
645

646 647 648 649 650 651 652 653 654
config DM_AUDIT
	bool "DM audit events"
	depends on AUDIT
	help
	  Generate audit events for device-mapper.

	  Enables audit logging of several security relevant events in the
	  particular device-mapper targets, especially the integrity target.

655
endif # MD