Hi Linus,
Please pull the device mapper updates for 7.1. There are fixes for some
corner case crashes in dm-cache and dm-mirror, new setup functionality for
dm-vdo, and miscellaneous minor fixes and cleanups, especially to dm-verity.
The following changes since commit 11439c4635edd669ae435eec308f4ab8a0804808:
Linux 7.0-rc2 (2026-03-01 15:39:31 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git
tags/for-7.1/dm-changes
for you to fetch changes up to 8c0ee19db81f0fa1ff25fd75b22b17c0cc2acde3:
dm cache: fix missing return in invalidate_committed's error path (2026-04-10
15:16:06 +0200)
----------------------------------------------------------------
Device Mapper patches for 7.1
dm-vdo:
- Make dm-vdo able to format the device itself, like other dm targets,
instead of needing a userspace formating program.
- Add some sanity checks and code cleanup.
dm-cache:
- Fix crashes and hangs when operating in passthrough mode (which have
been around, unnoticed, since 4.12), as well as a late arriving fix for
an error path bug in the passthrough fix.
- Fix a corner case memory leak.
dm-verity:
- Another set of minor bugfixes and code cleanups to the forward error
correction code.
dm-mirror
- Fix minor initialization bug
- Fix overflow crash on a large devices with small region sizes
dm-crypt
- Reimplement elephant diffuser using AES library and minor cleanups
dm-core:
- Claude found a buffer overflow in /dev/mapper/contrl ioctl handling
- make dm_mod.wait_for correctly wait for partitions
- minor code fixes and cleanups
----------------------------------------------------------------
Benjamin Marzinski (1):
dm-mpath: don't stop probing paths at presuspend
Bruce Johnston (9):
dm vdo: add geometry block initialization to encodings.c
dm vdo: add super block initialization to encodings.c
dm vdo: add formatting parameters to table line
dm vdo: add upfront validation for logical size
dm vdo: add geometry block encoding
dm vdo: add geometry block structure
dm vdo: add synchronous metadata I/O submission helper
dm vdo: add formatting logic and initialization
dm vdo: save the formatted metadata to disk
Colin Ian King (1):
dm vdo: Fix spelling mistake "postive" -> "positive"
Eric Biggers (27):
dm-ima: use SHA-256 library
dm-verity-fec: correctly reject too-small FEC devices
dm-verity-fec: correctly reject too-small hash devices
dm-verity-fec: fix corrected block count stat
dm-verity-fec: fix the size of dm_verity_fec_io::erasures
dm-verity-fec: fix reading parity bytes split across blocks (take 3)
dm-verity: rename dm_verity::hash_blocks to dm_verity::hash_end
dm-verity-fec: improve documentation for Forward Error Correction
dm-verity-fec: replace {MAX,MIN}_RSN with {MIN,MAX}_ROOTS
dm-verity-fec: use standard names for Reed-Solomon parameters
dm-verity-fec: rename "RS block" to "RS codeword"
dm-verity-fec: replace io_size with block_size
dm-verity-fec: rename rounds to region_blocks
dm-verity-fec: simplify computation of rsb
dm-verity-fec: simplify computation of ileaved
dm-verity-fec: simplify deinterleaving
dm-verity-fec: rename block_offset to out_pos
dm-verity-fec: move computation of offset and rsb down a level
dm-verity-fec: compute target region directly
dm-verity-fec: pass down index_in_region instead of rsb
dm-verity-fec: make fec_decode_bufs() just return 0 or error
dm-verity-fec: log target_block instead of index_in_region
dm-verity-fec: improve comments for fec_read_bufs()
dm-verity-fec: warn even when there were no errors
dm-crypt: Reimplement elephant diffuser using AES library
dm-crypt: Make crypt_iv_operations::wipe return void
dm-crypt: Make crypt_iv_operations::post return void
Guillaume Gonnet (1):
dm init: ensure device probing has finished in dm-mod.waitfor=
Junrui Luo (2):
dm mirror: fix integer overflow in create_dirty_log()
dm log: fix out-of-bounds write due to region_count overflow
Keith Busch (3):
dm-integrity: fix mismatched queue limits
dm-integrity: always set the io hints
dm: provide helper to set stacked limits
Ken Raeburn (3):
dm vdo: update vdo_allocate_extended to take a field name, no types
dm vdo: remove redundant TYPE argument from vdo_allocate macro
dm vdo: add __counted_by attribute to a number of structures
Matthew Sakai (2):
dm vdo indexer: validate saved zone count
dm vdo slab-depot: validate old zone count on load
Mikulas Patocka (3):
dm: don't report warning when doing deferred remove
dm: make "dmsetup remove_all" interruptible
dm: fix a buffer overflow in ioctl processing
Ming-Hung Tsai (9):
dm cache: fix null-deref with concurrent writes in passthrough mode
dm cache: fix write path cache coherency in passthrough mode
dm cache: fix write hang in passthrough mode
dm cache policy smq: fix missing locks in invalidating cache blocks
dm cache: fix concurrent write failure in passthrough mode
dm cache: fix dirty mapping checking in passthrough mode switching
dm cache: prevent entering passthrough mode after unclean shutdown
dm cache metadata: fix memory leak on metadata abort retry
dm cache: fix missing return in invalidate_committed's error path
Rosen Penev (1):
dm-bufio: use kzalloc_flex
Documentation/admin-guide/device-mapper/verity.rst | 122 +++++--
drivers/md/Kconfig | 2 +
drivers/md/dm-bufio.c | 4 +-
drivers/md/dm-cache-metadata.c | 33 +-
drivers/md/dm-cache-metadata.h | 10 +-
drivers/md/dm-cache-policy-smq.c | 4 +
drivers/md/dm-cache-target.c | 92 +++--
drivers/md/dm-crypt.c | 140 +++-----
drivers/md/dm-ima.c | 54 +--
drivers/md/dm-ima.h | 1 -
drivers/md/dm-init.c | 4 +-
drivers/md/dm-integrity.c | 10 +-
drivers/md/dm-ioctl.c | 39 ++-
drivers/md/dm-log.c | 6 +-
drivers/md/dm-mpath.c | 9 +-
drivers/md/dm-raid1.c | 6 +-
drivers/md/dm-vdo/action-manager.c | 2 +-
drivers/md/dm-vdo/block-map.c | 32 +-
drivers/md/dm-vdo/block-map.h | 2 +-
drivers/md/dm-vdo/constants.h | 13 +-
drivers/md/dm-vdo/data-vio.c | 3 +-
drivers/md/dm-vdo/dedupe.c | 8 +-
drivers/md/dm-vdo/dm-vdo-target.c | 151 +++++++-
drivers/md/dm-vdo/encodings.c | 221 +++++++++++-
drivers/md/dm-vdo/encodings.h | 17 +
drivers/md/dm-vdo/flush.c | 4 +-
drivers/md/dm-vdo/funnel-queue.c | 2 +-
drivers/md/dm-vdo/funnel-workqueue.c | 8 +-
drivers/md/dm-vdo/indexer/chapter-index.c | 2 +-
drivers/md/dm-vdo/indexer/config.c | 2 +-
drivers/md/dm-vdo/indexer/delta-index.c | 13 +-
drivers/md/dm-vdo/indexer/funnel-requestqueue.c | 2 +-
drivers/md/dm-vdo/indexer/geometry.c | 2 +-
drivers/md/dm-vdo/indexer/index-layout.c | 54 ++-
drivers/md/dm-vdo/indexer/index-page-map.c | 8 +-
drivers/md/dm-vdo/indexer/index-session.c | 2 +-
drivers/md/dm-vdo/indexer/index.c | 14 +-
drivers/md/dm-vdo/indexer/index.h | 2 +-
drivers/md/dm-vdo/indexer/indexer.h | 4 +
drivers/md/dm-vdo/indexer/io-factory.c | 6 +-
drivers/md/dm-vdo/indexer/open-chapter.c | 4 +-
drivers/md/dm-vdo/indexer/open-chapter.h | 2 +-
drivers/md/dm-vdo/indexer/radix-sort.c | 3 +-
drivers/md/dm-vdo/indexer/sparse-cache.c | 10 +-
drivers/md/dm-vdo/indexer/volume-index.c | 10 +-
drivers/md/dm-vdo/indexer/volume.c | 22 +-
drivers/md/dm-vdo/int-map.c | 5 +-
drivers/md/dm-vdo/io-submitter.c | 30 +-
drivers/md/dm-vdo/io-submitter.h | 4 +
drivers/md/dm-vdo/logical-zone.c | 3 +-
drivers/md/dm-vdo/logical-zone.h | 2 +-
drivers/md/dm-vdo/memory-alloc.c | 8 +-
drivers/md/dm-vdo/memory-alloc.h | 74 +---
drivers/md/dm-vdo/message-stats.c | 2 +-
drivers/md/dm-vdo/packer.c | 9 +-
drivers/md/dm-vdo/physical-zone.c | 8 +-
drivers/md/dm-vdo/priority-table.c | 3 +-
drivers/md/dm-vdo/recovery-journal.c | 23 +-
drivers/md/dm-vdo/repair.c | 17 +-
drivers/md/dm-vdo/slab-depot.c | 41 +--
drivers/md/dm-vdo/slab-depot.h | 2 +-
drivers/md/dm-vdo/status-codes.c | 2 +
drivers/md/dm-vdo/thread-utils.c | 2 +-
drivers/md/dm-vdo/types.h | 3 +
drivers/md/dm-vdo/vdo.c | 333 ++++++++++++------
drivers/md/dm-vdo/vdo.h | 19 ++
drivers/md/dm-vdo/vio.c | 12 +-
drivers/md/dm-verity-fec.c | 380 ++++++++++-----------
drivers/md/dm-verity-fec.h | 28 +-
drivers/md/dm-verity-target.c | 16 +-
drivers/md/dm-verity.h | 4 +-
drivers/md/dm-writecache.c | 10 +-
include/linux/device-mapper.h | 7 +
73 files changed, 1348 insertions(+), 860 deletions(-)