Hi Linus, Here are the block related updates for the 6.15-rc1 merge window. This pull request contains: - Fixes for integrity handling. - NVMe pull request via Keith - Secure concatenation for TCP transport (Hannes) - Multipath sysfs visibility (Nilay) - Various cleanups (Qasim, Baruch, Wang, Chen, Mike, Damien, Li) - Correct use of 64-bit BARs for pci-epf target (Niklas) - Socket fix for selinux when used in containers (Peijie) - MD pull request via Yu: - fix recovery can preempt resync (Li Nan) - fix md-bitmap IO limit (Su Yue) - fix raid10 discard with REQ_NOWAIT (Xiao Ni) - fix raid1 memory leak (Zheng Qixing) - fix mddev uaf (Yu Kuai) - fix raid1,raid10 IO flags (Yu Kuai) - some refactor and cleanup (Yu Kuai) - Series cleaning up and fixing bugs in the bad block handling code. - Improve support for write failure simulation in null_blk. - Various lock ordering fixes. - Fixes for locking for debugfs attributes. - Various ublk related fixes and improvements. - Cleanups for blk-rq-qos wait handling. - blk-throttle fixes. - Fixes for loop dio and sync handling. - Fixes and cleanups for the auto-PI code. - Block side support for hardware encryption keys in blk-crypto. - Various cleanups and fixes. Please pull! The following changes since commit a64dcfb451e254085a7daee5fe51bf22959d52d3: Linux 6.14-rc2 (2025-02-09 12:45:03 -0800) are available in the Git repository at: git://git.kernel.dk/linux.git tags/for-6.15/block-20250322 for you to fetch changes up to 3c9f0c9326b625bf008962d58996f89a3bba1e12: Merge tag 'nvme-6.15-2025-03-20' of git://git.infradead.org/nvme into for-6.15/block (2025-03-20 18:39:22 -0600) ---------------------------------------------------------------- for-6.15/block-20250322 ---------------------------------------------------------------- Anuj Gupta (3): block: ensure correct integrity capability propagation in stacked devices block: Correctly initialize BLK_INTEGRITY_NOGENERATE and BLK_INTEGRITY_NOVERIFY block: remove unused parameter 'q' parameter in __blk_rq_map_sg() Baruch Siach (1): nvme-pci: remove stale comment Caleb Sander Mateos (1): ublk: complete command synchronously on error Chen Linxuan (1): blk-cgroup: improve policy registration error handling Chen Ni (1): nvmet: pci-epf: Remove redundant 'flush_workqueue()' calls Christoph Hellwig (8): loop: factor out a loop_assign_backing_file helper loop: set LO_FLAGS_DIRECT_IO in loop_assign_backing_file loop: check in LO_FLAGS_DIRECT_IO in loop_default_blocksize loop: take the file system minimum dio alignment into account block: mark bounce buffering as incompatible with integrity block: move the block layer auto-integrity code into a new file block: split struct bio_integrity_payload block: fix a comment in the queue_attrs[] array Coly Li (1): badblocks: Fix a nonsense WARN_ON() which checks whether a u64 variable < 0 Damien Le Moal (1): nvme: zns: Simplify nvme_zone_parse_entry() Eric Biggers (3): blk-crypto: add basic hardware-wrapped key support blk-crypto: show supported key types in sysfs blk-crypto: add ioctls to create and prepare hardware-wrapped keys Guixin Liu (1): block: remove unused parameter Hannes Reinecke (10): crypto,fs: Separate out hkdf_extract() and hkdf_expand() nvme: add nvme_auth_generate_psk() nvme: add nvme_auth_generate_digest() nvme: add nvme_auth_derive_tls_psk() nvme-keyring: add nvme_tls_psk_refresh() nvme-tcp: request secure channel concatenation nvme-fabrics: reset admin connection for secure concatenation nvmet: Add 'sq' argument to alloc_ctrl_args nvmet-tcp: support secure channel concatenation nvmet: add tls_concat and tls_key debugfs entries Jens Axboe (3): Merge tag 'md-6.15-20250312' of https://git.kernel.org/pub/scm/linux/kernel/git/mdraid/linux into for-6.15/block block/blk-iocost: ensure 'ret' is set on error Merge tag 'nvme-6.15-2025-03-20' of git://git.infradead.org/nvme into for-6.15/block Li Haoran (1): nvmet: replace max(a, min(b, c)) by clamp(val, lo, hi) Li Nan (9): md: ensure resync is prioritized over recovery badblocks: Fix error shitf ops badblocks: factor out a helper try_adjacent_combine badblocks: attempt to merge adjacent badblocks during ack_all_badblocks badblocks: return error directly when setting badblocks exceeds 512 badblocks: return error if any badblock set fails badblocks: fix the using of MAX_BADBLOCKS badblocks: try can_merge_front before overlap_front badblocks: fix merge issue when new badblocks align with pre+1 Mike Christie (1): nvmet: Remove duplicate uuid_copy Milan Broz (1): docs: sysfs-block: Clarify integrity sysfs attributes Ming Lei (7): ublk: add DMA alignment limit blk-throttle: remove last_bytes_disp and last_ios_disp blk-throttle: don't take carryover for prioritized processing of metadata blk-throttle: carry over directly block: make sure ->nr_integrity_segments is cloned in blk_rq_prep_clone block: fix adding folio to bio loop: move vfs_fsync() out of loop_update_dio() Muchun Song (2): block: introduce init_wait_func() block: refactor rq_qos_wait() Niklas Cassel (1): nvmet: pci-epf: Always configure BAR0 as 64-bit Nilay Shroff (16): block: acquire q->limits_lock while reading sysfs attributes block: move q->sysfs_lock and queue-freeze under show/store method block: remove q->sysfs_lock for attributes which don't need it block: introduce a dedicated lock for protecting queue elevator updates block: protect nr_requests update using q->elevator_lock block: protect wbt_lat_usec using q->elevator_lock block: protect read_ahead_kb using q->limits_lock block: protect hctx attributes/params using q->elevator_lock block: protect debugfs attrs using elevator_lock instead of sysfs_lock block: remove unnecessary goto labels in debugfs attribute read methods block: protect debugfs attribute method hctx_busy_show block: release q->elevator_lock in ioc_qos_write block: correct locking order for protecting blk-wbt parameters nvme-multipath: Add visibility for round-robin io-policy nvme-multipath: Add visibility for numa io-policy nvme-multipath: Add visibility for queue-depth io-policy Peijie Shao (1): nvme-tcp: fix selinux denied when calling sock_sendmsg Qasim Ijaz (1): nvme-fc: Utilise min3() to simplify queue count calculation Shin'ichiro Kawasaki (5): null_blk: generate null_blk configfs features string null_blk: introduce badblocks_once parameter null_blk: replace null_process_cmd() call in null_zone_write() null_blk: pass transfer size to null_handle_rq() null_blk: do partial IO for bad blocks Su Yue (1): md/md-bitmap: fix wrong bitmap_limit for clustermd when write sb Tang Yizhou (2): blk-wbt: Fix some comments blk-wbt: Cleanup a comment in wb_timer_fn Thomas Hellström (1): block: Make request_queue lockdep splats show up earlier Thorsten Blum (1): block: Remove commented out code Uday Shankar (2): ublk: enforce ublks_max only for unprivileged devices ublk: remove io_cmds list in ublk_queue WangYuli (1): nvmet-fc: Remove unused functions Xiao Ni (1): md/raid10: wait barrier before returning discard request with REQ_NOWAIT Yu Kuai (11): md: merge common code into find_pers() md: only include md-cluster.h if necessary md: introduce struct md_submodule_head and APIs md: switch personalities to use md_submodule_head md/md-cluster: cleanup md_cluster_ops reference md: don't export md_cluster_ops md: switch md-cluster to use md_submodle_head md: fix mddev uaf while iterating all_mddevs list md/raid5: merge reshape_progress checking inside get_reshape_loc() md/raid1,raid10: don't ignore IO flags blk-throttle: fix lower bps rate by throtl_trim_slice() Zhaoyang Huang (2): loop: release the lo_work_lock before queue_work Revert "driver: block: release the lo_work_lock before queue_work" Zheng Qixing (5): md/raid1: fix memory leak in raid1_run() if no active rdev badblocks: fix missing bad blocks on retry in _badblocks_check() badblocks: return boolean from badblocks_set() and badblocks_clear() md: improve return types of badblocks handling functions badblocks: use sector_t instead of int to avoid truncation of badblocks length Zhu Yanjun (1): loop: Remove struct loop_func_table Documentation/ABI/stable/sysfs-block | 43 +- Documentation/block/inline-encryption.rst | 255 ++++++++- Documentation/userspace-api/ioctl/ioctl-number.rst | 2 + block/Makefile | 3 +- block/badblocks.c | 327 +++++------- block/bio-integrity-auto.c | 191 +++++++ block/bio-integrity.c | 266 +--------- block/bio.c | 17 +- block/blk-cgroup.c | 73 ++- block/blk-cgroup.h | 2 + block/blk-core.c | 7 + block/blk-crypto-fallback.c | 7 +- block/blk-crypto-internal.h | 10 + block/blk-crypto-profile.c | 101 ++++ block/blk-crypto-sysfs.c | 35 ++ block/blk-crypto.c | 204 +++++++- block/blk-flush.c | 10 +- block/blk-iocost.c | 20 +- block/blk-merge.c | 4 +- block/blk-mq-debugfs.c | 41 +- block/blk-mq-sched.c | 2 +- block/blk-mq-sysfs.c | 4 +- block/blk-mq-tag.c | 3 +- block/blk-mq.c | 22 +- block/blk-mq.h | 4 +- block/blk-rq-qos.c | 82 ++- block/blk-settings.c | 58 +-- block/blk-sysfs.c | 304 +++++++---- block/blk-throttle.c | 82 ++- block/blk-throttle.h | 7 +- block/blk-wbt.c | 17 +- block/blk.h | 2 +- block/bounce.c | 2 - block/bsg-lib.c | 2 +- block/elevator.c | 43 +- block/elevator.h | 2 - block/genhd.c | 9 +- block/ioctl.c | 5 + block/kyber-iosched.c | 2 +- block/partitions/sgi.c | 2 - block/partitions/sun.c | 2 - block/t10-pi.c | 6 +- crypto/Kconfig | 6 + crypto/Makefile | 1 + crypto/hkdf.c | 573 +++++++++++++++++++++ drivers/block/loop.c | 106 ++-- drivers/block/mtip32xx/mtip32xx.c | 2 +- drivers/block/null_blk/main.c | 177 ++++--- drivers/block/null_blk/null_blk.h | 6 + drivers/block/null_blk/zoned.c | 20 +- drivers/block/rnbd/rnbd-clt.c | 2 +- drivers/block/sunvdc.c | 2 +- drivers/block/ublk_drv.c | 115 +++-- drivers/block/virtio_blk.c | 2 +- drivers/block/xen-blkfront.c | 2 +- drivers/md/dm-integrity.c | 12 - drivers/md/dm-table.c | 7 +- drivers/md/md-bitmap.c | 14 +- drivers/md/md-cluster.c | 18 +- drivers/md/md-cluster.h | 6 + drivers/md/md-linear.c | 15 +- drivers/md/md.c | 356 ++++++------- drivers/md/md.h | 62 ++- drivers/md/raid0.c | 18 +- drivers/md/raid1-10.c | 6 +- drivers/md/raid1.c | 56 +- drivers/md/raid10.c | 66 ++- drivers/md/raid5.c | 91 ++-- drivers/memstick/core/ms_block.c | 2 +- drivers/memstick/core/mspro_block.c | 4 +- drivers/mmc/core/queue.c | 2 +- drivers/mmc/host/cqhci-crypto.c | 8 +- drivers/mmc/host/sdhci-msm.c | 3 +- drivers/mtd/ubi/block.c | 2 +- drivers/nvdimm/badrange.c | 2 +- drivers/nvdimm/nd.h | 2 +- drivers/nvdimm/pfn_devs.c | 7 +- drivers/nvdimm/pmem.c | 2 +- drivers/nvme/common/Kconfig | 1 + drivers/nvme/common/auth.c | 337 ++++++++++++ drivers/nvme/common/keyring.c | 65 ++- drivers/nvme/host/Kconfig | 2 +- drivers/nvme/host/apple.c | 2 +- drivers/nvme/host/auth.c | 115 ++++- drivers/nvme/host/core.c | 3 + drivers/nvme/host/fabrics.c | 34 +- drivers/nvme/host/fabrics.h | 3 + drivers/nvme/host/fc.c | 6 +- drivers/nvme/host/multipath.c | 138 +++++ drivers/nvme/host/nvme.h | 22 +- drivers/nvme/host/pci.c | 5 +- drivers/nvme/host/rdma.c | 3 +- drivers/nvme/host/sysfs.c | 24 +- drivers/nvme/host/tcp.c | 67 ++- drivers/nvme/host/zns.c | 10 +- drivers/nvme/target/auth.c | 72 ++- drivers/nvme/target/core.c | 9 +- drivers/nvme/target/debugfs.c | 27 + drivers/nvme/target/fabrics-cmd-auth.c | 60 ++- drivers/nvme/target/fabrics-cmd.c | 25 +- drivers/nvme/target/fc.c | 14 - drivers/nvme/target/loop.c | 2 +- drivers/nvme/target/nvmet.h | 40 +- drivers/nvme/target/pci-epf.c | 12 +- drivers/nvme/target/tcp.c | 32 +- drivers/scsi/scsi_lib.c | 2 +- drivers/target/target_core_iblock.c | 12 - drivers/ufs/core/ufshcd-crypto.c | 7 +- drivers/ufs/host/ufs-exynos.c | 3 +- drivers/ufs/host/ufs-qcom.c | 3 +- fs/crypto/Kconfig | 1 + fs/crypto/hkdf.c | 85 +-- fs/crypto/inline_crypt.c | 4 +- include/crypto/hkdf.h | 20 + include/linux/badblocks.h | 10 +- include/linux/bio-integrity.h | 25 +- include/linux/bio.h | 4 - include/linux/blk-crypto-profile.h | 73 +++ include/linux/blk-crypto.h | 73 ++- include/linux/blk-mq.h | 9 +- include/linux/blkdev.h | 15 + include/linux/nvme-auth.h | 7 + include/linux/nvme-keyring.h | 12 +- include/linux/nvme.h | 7 + include/linux/wait.h | 6 +- include/uapi/linux/blk-crypto.h | 44 ++ include/uapi/linux/fs.h | 6 +- include/uapi/linux/ublk_cmd.h | 7 + 128 files changed, 4059 insertions(+), 1561 deletions(-) create mode 100644 block/bio-integrity-auto.c create mode 100644 crypto/hkdf.c create mode 100644 include/crypto/hkdf.h create mode 100644 include/uapi/linux/blk-crypto.h -- Jens Axboe