Hi Linus, The following changes since commit 4a6a7bc21d4726c5772e47525e6039852555b391: block: Default to use cgroup support for BFQ (2023-01-30 09:42:42 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git tags/for-6.3/dm-changes for you to fetch changes up to d695e44157c8da8d298295d1905428fb2495bc8b: dm: remove unnecessary (void*) conversion in event_callback() (2023-02-20 11:52:49 -0500) Please pull, thanks. Mike ---------------------------------------------------------------- - Fix DM cache target to free background tracker work items, otherwise slab BUG will occur when kmem_cache_destroy() is called. - Improve 2 of DM's shrinker names to reflect their use. - Fix the DM flakey target to not corrupt the zero page. Fix dm-flakey on 32-bit hughmem systems by using bvec_kmap_local instead of page_address. Also, fix logic used when imposing the "corrupt_bio_byte" feature. - Stop using WQ_UNBOUND for DM verity target's verify_wq because it causes significant Android latencies on ARM64 (and doesn't show real benefit on other architectures). - Add negative check to catch simple case of a DM table referencing itself. More complex scenarios that use intermediate devices to self-reference still need to be avoided/handled in userspace. - Fix DM core's resize to only send one uevent instead of two. This fixes a race with udev, that if udev wins, will cause udev to miss uevents (which caused premature unmount attempts by systemd). - Add cond_resched() to workqueue functions in DM core, dn-thin and dm-cache so that their loops aren't the cause of unintended cpu scheduling fairness issues. - Fix all of DM's checkpatch errors and warnings (famous last words). Various other small cleanups. ---------------------------------------------------------------- Benjamin Marzinski (1): dm table: check that a dm device doesn't reference itself Christophe JAILLET (1): dm crypt: Slightly simplify crypt_set_keyring_key() Heinz Mauelshagen (39): dm: add missing SPDX-License-Indentifiers dm: prefer kmap_local_page() instead of deprecated kmap_atomic() dm: use fsleep() instead of msleep() for deterministic sleep duration dm: change "unsigned" to "unsigned int" dm: avoid assignment in if conditions dm: enclose complex macros into parentheses where possible dm: avoid initializing static variables dm: address space issues relative to switch/while/for/... dm: address indent/space issues dm: correct block comments format. dm: fix undue/missing spaces dm: fix trailing statements dm crypt: correct 'foo*' to 'foo *' dm block-manager: avoid not required parentheses dm: avoid spaces before function arguments or in favour of tabs dm: add argument identifier names dm: add missing empty lines dm: remove unnecessary braces from single statement blocks dm: avoid split of quoted strings where possible dm: adjust EXPORT_SYMBOL() to follow functions immediately dm: prefer '"%s...", __func__' dm: avoid using symbolic permissions dm: favour __aligned(N) versus "__attribute__ (aligned(N))" dm: favour __packed versus "__attribute__ ((packed))" dm: avoid useless 'else' after 'break' or return' dm: add missing blank line after declarations/fix those dm: avoid inline filenames dm: don't indent labels dm ioctl: have constant on the right side of the test dm log: avoid trailing semicolon in macro dm log: avoid multiple line dereference dm: avoid 'do {} while(0)' loop in single statement macros dm: fix use of sizeof() macro dm integrity: change macros min/max() -> min_t/max_t where appropriate dm: avoid void function return statements dm ioctl: prefer strscpy() instead of strlcpy() dm: fix suspect indent whitespace dm: declare variables static when sensible dm clone: prefer kvmalloc_array() Hou Tao (1): dm ioctl: remove unnecessary check when using dm_get_mdptr() Jiapeng Chong (1): dm integrity: Remove bi_sector that's only used by commented debug code Joe Thornber (2): dm cache: free background tracker's queued work in btracker_destroy dm cache: Add some documentation to dm-cache-background-tracker.h Mike Snitzer (6): dm: improve shrinker debug names dm: remove flush_scheduled_work() during local_exit() dm: add cond_resched() to dm_wq_requeue_work() dm thin: add cond_resched() to various workqueue loops dm cache: add cond_resched() to various workqueue loops dm ioctl: assert _hash_lock is held in __hash_remove Mikulas Patocka (4): dm flakey: don't corrupt the zero page dm flakey: fix a bug with 32-bit highmem systems dm flakey: fix logic when corrupting a bio dm: send just one event on resize, not two Nathan Huckleberry (1): dm verity: stop using WQ_UNBOUND for verify_wq Pingfan Liu (1): dm: add cond_resched() to dm_wq_work() Sergey Shtylyov (1): dm ioctl: drop always-false condition Tetsuo Handa (1): dm: update targets using system workqueues to use a local workqueue Thomas Weißschuh (1): dm sysfs: make kobj_type structure constant XU pengfei (1): dm: remove unnecessary (void*) conversion in event_callback() Yu Zhe (1): dm raid: fix some spelling mistakes in comments drivers/md/dm-audit.c | 2 +- drivers/md/dm-bio-prison-v1.c | 19 +- drivers/md/dm-bio-prison-v1.h | 1 + drivers/md/dm-bio-prison-v2.c | 15 +- drivers/md/dm-bio-prison-v2.h | 11 +- drivers/md/dm-bio-record.h | 1 + drivers/md/dm-bufio.c | 130 ++--- drivers/md/dm-builtin.c | 3 +- drivers/md/dm-cache-background-tracker.c | 17 +- drivers/md/dm-cache-background-tracker.h | 47 +- drivers/md/dm-cache-block-types.h | 1 + drivers/md/dm-cache-metadata.c | 74 +-- drivers/md/dm-cache-metadata.h | 5 +- drivers/md/dm-cache-policy-internal.h | 14 +- drivers/md/dm-cache-policy-smq.c | 166 ++++--- drivers/md/dm-cache-policy.c | 3 +- drivers/md/dm-cache-policy.h | 7 +- drivers/md/dm-cache-target.c | 141 +++--- drivers/md/dm-clone-target.c | 2 +- drivers/md/dm-core.h | 9 +- drivers/md/dm-crypt.c | 117 ++--- drivers/md/dm-delay.c | 7 +- drivers/md/dm-dust.c | 2 +- drivers/md/dm-ebs-target.c | 5 +- drivers/md/dm-era-target.c | 122 +++-- drivers/md/dm-exception-store.c | 7 +- drivers/md/dm-exception-store.h | 57 +-- drivers/md/dm-flakey.c | 58 ++- drivers/md/dm-ima.c | 5 +- drivers/md/dm-ima.h | 7 +- drivers/md/dm-init.c | 5 +- drivers/md/dm-integrity.c | 541 +++++++++++---------- drivers/md/dm-io-rewind.c | 8 +- drivers/md/dm-io-tracker.h | 1 + drivers/md/dm-io.c | 88 ++-- drivers/md/dm-ioctl.c | 168 ++++--- drivers/md/dm-kcopyd.c | 61 ++- drivers/md/dm-linear.c | 5 +- drivers/md/dm-log-userspace-base.c | 15 +- drivers/md/dm-log-userspace-transfer.c | 8 +- drivers/md/dm-log-userspace-transfer.h | 1 + drivers/md/dm-log-writes.c | 23 +- drivers/md/dm-log.c | 65 ++- drivers/md/dm-mpath.c | 125 +++-- drivers/md/dm-mpath.h | 3 +- drivers/md/dm-path-selector.c | 4 +- drivers/md/dm-path-selector.h | 28 +- drivers/md/dm-ps-historical-service-time.c | 2 +- drivers/md/dm-ps-io-affinity.c | 6 +- drivers/md/dm-ps-queue-length.c | 15 +- drivers/md/dm-ps-round-robin.c | 22 +- drivers/md/dm-ps-service-time.c | 26 +- drivers/md/dm-raid.c | 35 +- drivers/md/dm-raid1.c | 92 ++-- drivers/md/dm-region-hash.c | 29 +- drivers/md/dm-rq.c | 27 +- drivers/md/dm-rq.h | 3 +- drivers/md/dm-snap-persistent.c | 48 +- drivers/md/dm-snap-transient.c | 18 +- drivers/md/dm-snap.c | 91 ++-- drivers/md/dm-stats.c | 103 ++-- drivers/md/dm-stats.h | 6 +- drivers/md/dm-stripe.c | 53 +- drivers/md/dm-switch.c | 47 +- drivers/md/dm-sysfs.c | 12 +- drivers/md/dm-table.c | 58 +-- drivers/md/dm-target.c | 6 +- drivers/md/dm-thin-metadata.c | 66 +-- drivers/md/dm-thin-metadata.h | 1 + drivers/md/dm-thin.c | 88 ++-- drivers/md/dm-uevent.c | 6 +- drivers/md/dm-uevent.h | 6 +- drivers/md/dm-unstripe.c | 1 + drivers/md/dm-verity-fec.c | 30 +- drivers/md/dm-verity-fec.h | 18 +- drivers/md/dm-verity-target.c | 83 ++-- drivers/md/dm-verity-verify-sig.c | 2 +- drivers/md/dm-verity-verify-sig.h | 2 +- drivers/md/dm-verity.h | 8 +- drivers/md/dm-writecache.c | 171 ++++--- drivers/md/dm-zero.c | 1 + drivers/md/dm-zone.c | 2 +- drivers/md/dm-zoned-metadata.c | 22 +- drivers/md/dm-zoned-target.c | 1 - drivers/md/dm.c | 116 +++-- drivers/md/dm.h | 16 +- drivers/md/persistent-data/dm-array.c | 82 ++-- drivers/md/persistent-data/dm-array.h | 3 +- drivers/md/persistent-data/dm-bitset.c | 14 +- drivers/md/persistent-data/dm-bitset.h | 1 + drivers/md/persistent-data/dm-block-manager.c | 32 +- drivers/md/persistent-data/dm-block-manager.h | 7 +- drivers/md/persistent-data/dm-btree-internal.h | 6 +- drivers/md/persistent-data/dm-btree-remove.c | 52 +- drivers/md/persistent-data/dm-btree-spine.c | 21 +- drivers/md/persistent-data/dm-btree.c | 130 ++--- drivers/md/persistent-data/dm-btree.h | 15 +- .../persistent-data/dm-persistent-data-internal.h | 7 +- drivers/md/persistent-data/dm-space-map-common.c | 52 +- drivers/md/persistent-data/dm-space-map-common.h | 11 +- drivers/md/persistent-data/dm-space-map-disk.c | 13 +- drivers/md/persistent-data/dm-space-map-disk.h | 1 + drivers/md/persistent-data/dm-space-map-metadata.c | 24 +- drivers/md/persistent-data/dm-space-map-metadata.h | 1 + drivers/md/persistent-data/dm-space-map.h | 1 + .../md/persistent-data/dm-transaction-manager.c | 18 +- .../md/persistent-data/dm-transaction-manager.h | 3 +- include/linux/device-mapper.h | 60 ++- include/linux/dm-bufio.h | 13 +- include/linux/dm-dirty-log.h | 9 +- include/linux/dm-io.h | 9 +- include/linux/dm-kcopyd.h | 23 +- include/linux/dm-region-hash.h | 9 +- 113 files changed, 2311 insertions(+), 1849 deletions(-)