Hi Linus, These changes build on Jens' for-5.18 block tree because of various changes that impacted DM and DM's need for bio_start_io_acct_time(). The following changes since commit bcd2be763252f3a4d5fc4d6008d4d96c601ee74b: block/bfq_wf2q: correct weight to ioprio (2022-02-16 20:09:14 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git tags/for-5.18/dm-changes for you to fetch changes up to 4d7bca13dd9a5033174b0735056c5658cb893e76: dm: consolidate spinlocks in dm_io struct (2022-03-21 14:15:36 -0400) Please pull, thanks. Mike ---------------------------------------------------------------- - Significant refactoring and fixing of how DM core does bio-based IO accounting with focus on fixing wildly inaccurate IO stats for dm-crypt (and other DM targets that defer bio submission in their own workqueues). End result is proper IO accounting, made possible by targets being updated to use the new dm_submit_bio_remap() interface. - Add hipri bio polling support (REQ_POLLED) to bio-based DM. - Reduce dm_io and dm_target_io structs so that a single dm_io (which contains dm_target_io and first clone bio) weighs in at 256 bytes. For reference the bio struct is 128 bytes. - Various other small cleanups, fixes or improvements in DM core and targets. - Update MAINTAINERS with my kernel.org email address to allow distinction between my "upstream" and "Red" Hats. ---------------------------------------------------------------- Aashish Sharma (1): dm crypt: fix get_key_size compiler warning if !CONFIG_KEYS Barry Song (1): dm io: remove stale comment block for dm_io() Christoph Hellwig (2): dm-zoned: remove the ->name field in struct dmz_dev dm: stop using bdevname Colin Ian King (1): dm cache policy smq: make static read-only array table const Jordy Zomer (1): dm ioctl: prevent potential spectre v1 gadget Kirill Tkhai (1): dm: fix use-after-free in dm_cleanup_zoned_dev() Mike Snitzer (33): dm: interlock pending dm_io and dm_wait_for_bios_completion dm: fix double accounting of flush with data dm stats: fix too short end duration_ns when using precise_timestamps dm: eliminate copying of dm_io fields in dm_io_dec_pending dm: reorder members in mapped_device struct dm: rename split functions dm: fold __clone_and_map_data_bio into __split_and_process_bio dm: refactor dm_split_and_process_bio a bit dm: reduce code duplication in __map_bio dm: remove impossible BUG_ON in __send_empty_flush dm: remove unused mapped_device argument from free_tio dm: remove legacy code only needed before submit_bio recursion dm: record old_sector in dm_target_io before calling map function dm: move duplicate code from callers of alloc_tio into alloc_tio dm: reduce dm_io and dm_target_io struct sizes dm: flag clones created by __send_duplicate_bios dm: add dm_submit_bio_remap interface dm crypt: use dm_submit_bio_remap dm delay: use dm_submit_bio_remap dm: requeue IO if mapping table not yet available dm: remove unnecessary local variables in __bind dm mpath: use DMINFO instead of printk with KERN_INFO dm: add WARN_ON_ONCE to dm_submit_bio_remap dm thin: use dm_submit_bio_remap dm: simplify dm_sumbit_bio_remap interface dm cache: use dm_submit_bio_remap dm: factor out dm_io_complete dm: return void from __send_empty_flush dm: update email address in MAINTAINERS dm: switch dm_io booleans over to proper flags dm: switch dm_target_io booleans over to proper flags dm: reduce size of dm_io and dm_target_io structs dm: consolidate spinlocks in dm_io struct Ming Lei (2): block: add ->poll_bio to block_device_operations dm: support bio polling Thore Sommer (1): dm ima: fix wrong length calculation for no_data string Tom Rix (1): dm: cleanup double word in comment Wang Qing (1): dm thin: use time_is_before_jiffies instead of open coding it Zhiqiang Liu (1): dm thin metadata: remove unused dm_thin_remove_block and __remove MAINTAINERS | 2 +- block/blk-core.c | 14 +- block/genhd.c | 4 + drivers/md/dm-cache-policy-smq.c | 4 +- drivers/md/dm-cache-target.c | 17 +- drivers/md/dm-clone-target.c | 10 +- drivers/md/dm-core.h | 99 ++++-- drivers/md/dm-crypt.c | 15 +- drivers/md/dm-delay.c | 5 +- drivers/md/dm-ima.c | 6 +- drivers/md/dm-io.c | 8 - drivers/md/dm-ioctl.c | 2 + drivers/md/dm-mpath.c | 5 +- drivers/md/dm-rq.c | 7 +- drivers/md/dm-stats.c | 34 +- drivers/md/dm-stats.h | 11 +- drivers/md/dm-table.c | 57 +++- drivers/md/dm-thin-metadata.c | 28 -- drivers/md/dm-thin-metadata.h | 1 - drivers/md/dm-thin.c | 15 +- drivers/md/dm-zoned-metadata.c | 4 +- drivers/md/dm-zoned-target.c | 1 - drivers/md/dm-zoned.h | 9 +- drivers/md/dm.c | 673 ++++++++++++++++++++++++++------------- include/linux/blkdev.h | 2 + include/linux/device-mapper.h | 9 +- include/uapi/linux/dm-ioctl.h | 4 +- 27 files changed, 685 insertions(+), 361 deletions(-)