Hi Linus, Here are the block changes queued up for the 5.18-rc1 merge window. In detail: - BFQ cleanups and fixes (Yu, Zhang, Yahu, Paolo) - blk-rq-qos completion fix (Tejun) - blk-cgroup merge fix (Tejun) - Add offline error return value to distinguish it from an IO error on the device (Song) - IO stats fixes (Zhang, Christoph) - blkcg refcount fixes (Ming, Yu) - Fix for indefinite dispatch loop softlockup (Shin'ichiro) - blk-mq hardware queue management improvements (Ming) - sbitmap dead code removal (Ming, John) - Plugging merge improvements (me) - Show blk-crypto capabilities in sysfs (Eric) - Multiple delayed queue run improvement (David) - Block throttling fixes (Ming) - Start deprecating auto module loading based on dev_t (Christoph) - bio allocation improvements (Christoph, Chaitanya) - Get rid of bio_devname (Christoph) - bio clone improvements (Christoph) - Block plugging improvements (Christoph) - Get rid of genhd.h header (Christoph) - Ensure drivers use appropriate flush helpers (Christoph) - Refcounting improvements (Christoph) - Queue initialization and teardown improvements (Ming, Christoph) - Misc fixes/improvements (Barry, Chaitanya, Colin, Dan, Jiapeng, Lukas, Nian, Yang, Eric, Chengming) This will throw a merge conflicts in drivers/block/virtio_blk.c since sg_elems got removed in the 5.17 release series. Trivial fixup, both sg_elems and refs just need to be removed from the struct. Please pull! The following changes since commit 26291c54e111ff6ba87a164d85d4a4e134b7315c: Linux 5.17-rc2 (2022-01-30 15:37:07 +0200) are available in the Git repository at: git://git.kernel.dk/linux-block.git tags/for-5.18/block-2022-03-18 for you to fetch changes up to 8f9e7b65f833cb9a4b2e2f54a049d74df394d906: block: cancel all throttled bios in del_gendisk() (2022-03-18 09:57:56 -0600) ---------------------------------------------------------------- for-5.18/block-2022-03-18 ---------------------------------------------------------------- Barry Song (1): docs: block: biodoc.rst: Drop the obsolete and incorrect content Chaitanya Kulkarni (2): block: pass a block_device and opf to blk_next_bio blk-lib: don't check bdev_get_queue() NULL check Chengming Zhou (1): blk-cgroup: set blkg iostat after percpu stat aggregation Christoph Hellwig (70): block: deprecate autoloading based on dev_t block: move disk_{block,unblock,flush}_events to blk.h block: move blk_drop_partitions to blk.h block: remove genhd.h fs: remove mpage_alloc nilfs2: remove nilfs_alloc_seg_bio nfs/blocklayout: remove bl_alloc_init_bio ntfs3: remove ntfs_alloc_bio dm: bio_alloc can't fail if it is allowed to sleep dm-crypt: remove clone_init dm-snap: use blkdev_issue_flush instead of open coding it dm-thin: use blkdev_issue_flush instead of open coding it drbd: bio_alloc can't fail if it is allow to sleep rnbd-srv: simplify bio mapping in process_rdma rnbd-srv: remove struct rnbd_dev_blk_io xen-blkback: bio_alloc can't fail if it is allow to sleep block: move blk_next_bio to bio.c block: pass a block_device and opf to bio_alloc_bioset block: pass a block_device and opf to bio_alloc_kiocb block: pass a block_device and opf to bio_alloc block: pass a block_device and opf to bio_init block: pass a block_device and opf to bio_reset block: remove blk_needs_flush_plug block: check that there is a plug in blk_flush_plug block: fix the kerneldoc for bio_end_io_acct MAINTAINERS: add bio.h to the block section block: call bio_associate_blkg from bio_reset drbd: set ->bi_bdev in drbd_req_new dm: add a clone_to_tio helper dm: fold clone_bio into __clone_and_map_data_bio dm: fold __send_duplicate_bios into __clone_and_map_simple_bio dm: move cloning the bio into alloc_tio dm: pass the bio instead of tio to __map_bio dm: retun the clone bio from alloc_tio dm: simplify the single bio fast path in __send_duplicate_bios dm-cache: remove __remap_to_origin_clear_discard block: clone crypto and integrity data in __bio_clone_fast dm: use bio_clone_fast in alloc_io/alloc_tio block: initialize the target bio in __bio_clone_fast block: pass a block_device to bio_clone_fast block: remove biodoc.rst blk-mq: make the blk-mq stacking code optional blk-mq: fold blk_cloned_rq_check_limits into blk_insert_cloned_request blk-mq: remove the request_queue argument to blk_insert_cloned_request dm: remove useless code from dm_dispatch_clone_request dm: remove dm_dispatch_clone_request block: add a ->free_disk method memstick/ms_block: simplify refcounting memstick/mspro_block: fix handling of read-only devices memstick/mspro_block: simplify refcounting virtio_blk: simplify refcounting block: default BLOCK_LEGACY_AUTOLOAD to y block: fix and cleanup bio_check_ro block: remove handle_bad_sector pktcdvd: remove a pointless debug check in pkt_submit_bio dm-crypt: stop using bio_devname dm-integrity: stop using bio_devname md-multipath: stop using bio_devname raid1: stop using bio_devname raid5-ppl: stop using bio_devname ext4: stop using bio_devname block: remove bio_devname blk-mq: do not include passthrough requests in I/O accounting scsi: don't use disk->private_data to find the scsi_driver sd: rename the scsi_disk.dev field sd: call sd_zbc_release_disk before releasing the scsi_device reference sd: delay calling free_opal_dev sd: implement ->free_disk to simplify refcounting sr: implement ->free_disk to simplify refcounting block: do more work in elevator_exit Colin Ian King (1): block/bfq-iosched: Fix spelling mistake "tenative" -> "tentative" Dan Carpenter (1): fs/ntfs3: remove unnecessary NULL check David Jeffery (1): blk-mq: avoid extending delays of active hctx from blk_mq_delay_run_hw_queues Eric Biggers (3): block: simplify calling convention of elv_unregister_queue() block: don't delete queue kobject before its children blk-crypto: show crypto capabilities in sysfs Jens Axboe (2): block: ensure plug merging checks the correct queue at least once block: flush plug based on hardware and software queue order Jiapeng Chong (1): block: fix boolreturn.cocci warning John Garry (1): sbitmap: Delete old sbitmap_queue_get_shallow() Lukas Bulwahn (1): sr: simplify the local variable initialization in sr_block_open() Ming Lei (26): lib/sbitmap: kill 'depth' from sbitmap_word block: remove THROTL_IOPS_MAX block: move initialization of q->blkg_list into blkcg_init_queue block: partition include/linux/blk-cgroup.h block: move submit_bio_checks() into submit_bio_noacct block: move blk_crypto_bio_prep() out of blk-mq.c block: don't declare submit_bio_checks in local header block: don't check bio in blk_throtl_dispatch_work_fn block: merge submit_bio_checks() into submit_bio_noacct block: throttle split bio in case of iops limit block: don't try to throttle split bio if iops limit isn't set block: revert 4f1e9630afe6 ("blk-throtl: optimize IOPS throttle for large IO scenarios") blk-mq: figure out correct numa node for hw queue blk-mq: simplify reallocation of hw ctxs a bit blk-mq: reconfigure poll after queue map is changed block: mtip32xx: don't touch q->queue_hw_ctx blk-mq: prepare for implementing hctx table via xarray blk-mq: manage hctx map via xarray blk-mq: handle already freed tags gracefully in blk_mq_free_rqs block: move blkcg initialization/destroy into disk allocation/release handler block: don't remove hctx debugfs dir from blk_mq_exit_queue block: move q_usage_counter release into blk_queue_release block: move blk_exit_queue into disk_release block: move rq_qos_exit() into disk_release() block: avoid use-after-free on throttle data block: let blkcg_gq grab request queue's refcnt Nian Yanchuan (1): block: remove redundant semicolon Paolo Valente (1): Revert "Revert "block, bfq: honor already-setup queue merges"" Shin'ichiro Kawasaki (1): block: limit request dispatch loop duration Song Liu (3): block: introduce BLK_STS_OFFLINE block: return -ENODEV for BLK_STS_OFFLINE scsi: use BLK_STS_OFFLINE for not fully online devices Tejun Heo (2): block: fix rq-qos breakage from skipping rq_qos_done_bio() block: don't merge across cgroup boundaries if blkcg is enabled Yahu Gao (1): block/bfq_wf2q: correct weight to ioprio Yang Shi (1): block: introduce block_rq_error tracepoint Yu Kuai (4): block, bfq: cleanup bfq_bfqq_to_bfqg() block, bfq: avoid moving bfqq to it's parent bfqg block, bfq: don't move oom_bfqq block: cancel all throttled bios in del_gendisk() Zhang Wensheng (2): block: update io_ticks when io hang bfq: fix use-after-free in bfq_dispatch_request Documentation/ABI/stable/sysfs-block | 49 ++ Documentation/block/biodoc.rst | 1164 ---------------------------------- Documentation/block/capability.rst | 2 +- Documentation/block/index.rst | 1 - MAINTAINERS | 1 + arch/m68k/atari/stdma.c | 1 - arch/m68k/bvme6000/config.c | 1 - arch/m68k/emu/nfblock.c | 1 - arch/m68k/kernel/setup_mm.c | 1 - arch/m68k/mvme147/config.c | 1 - arch/m68k/mvme16x/config.c | 1 - block/Kconfig | 13 + block/Makefile | 3 +- block/bdev.c | 11 +- block/bfq-cgroup.c | 16 +- block/bfq-iosched.c | 37 +- block/bfq-iosched.h | 2 - block/bfq-wf2q.c | 17 +- block/bio-integrity.c | 1 - block/bio.c | 190 +++--- block/blk-cgroup-rwstat.h | 2 +- block/blk-cgroup.c | 20 +- block/blk-cgroup.h | 494 +++++++++++++++ block/blk-core.c | 293 ++++----- block/blk-crypto-fallback.c | 2 +- block/blk-crypto-internal.h | 12 + block/blk-crypto-sysfs.c | 172 +++++ block/blk-crypto.c | 4 +- block/blk-flush.c | 4 +- block/blk-iocost.c | 2 +- block/blk-iolatency.c | 4 +- block/blk-ioprio.c | 2 +- block/blk-lib.c | 46 +- block/blk-merge.c | 33 +- block/blk-mq-debugfs.c | 6 +- block/blk-mq-debugfs.h | 2 + block/blk-mq-sched.c | 18 +- block/blk-mq-sysfs.c | 16 +- block/blk-mq-tag.c | 6 +- block/blk-mq.c | 303 ++++----- block/blk-mq.h | 2 +- block/blk-rq-qos.h | 20 +- block/blk-sysfs.c | 44 +- block/blk-throttle.c | 110 ++-- block/blk-throttle.h | 19 +- block/blk-zoned.c | 14 +- block/blk.h | 10 +- block/bounce.c | 11 +- block/disk-events.c | 2 +- block/elevator.c | 16 +- block/fops.c | 35 +- block/genhd.c | 67 +- block/holder.c | 2 +- block/partitions/check.h | 1 - block/partitions/core.c | 1 - block/partitions/efi.h | 1 - block/partitions/ldm.h | 1 - block/sed-opal.c | 2 +- drivers/base/class.c | 2 +- drivers/base/core.c | 2 +- drivers/base/devtmpfs.c | 2 +- drivers/block/aoe/aoeblk.c | 1 - drivers/block/aoe/aoecmd.c | 1 - drivers/block/drbd/drbd_actlog.c | 5 +- drivers/block/drbd/drbd_bitmap.c | 7 +- drivers/block/drbd/drbd_int.h | 1 - drivers/block/drbd/drbd_receiver.c | 32 +- drivers/block/drbd/drbd_req.c | 5 +- drivers/block/drbd/drbd_worker.c | 4 +- drivers/block/floppy.c | 4 +- drivers/block/mtip32xx/mtip32xx.c | 5 +- drivers/block/mtip32xx/mtip32xx.h | 1 - drivers/block/pktcdvd.c | 21 +- drivers/block/rnbd/rnbd-clt.c | 2 +- drivers/block/rnbd/rnbd-srv-dev.c | 61 +- drivers/block/rnbd/rnbd-srv-dev.h | 18 +- drivers/block/rnbd/rnbd-srv-sysfs.c | 1 - drivers/block/rnbd/rnbd-srv.c | 45 +- drivers/block/rnbd/rnbd-srv.h | 1 - drivers/block/sunvdc.c | 1 - drivers/block/virtio_blk.c | 66 +- drivers/block/xen-blkback/blkback.c | 25 +- drivers/block/zram/zram_drv.c | 17 +- drivers/cdrom/gdrom.c | 1 - drivers/char/random.c | 2 +- drivers/md/Kconfig | 1 + drivers/md/bcache/io.c | 3 +- drivers/md/bcache/journal.c | 16 +- drivers/md/bcache/movinggc.c | 4 +- drivers/md/bcache/request.c | 22 +- drivers/md/bcache/super.c | 9 +- drivers/md/bcache/writeback.c | 4 +- drivers/md/dm-cache-target.c | 26 +- drivers/md/dm-core.h | 1 - drivers/md/dm-crypt.c | 46 +- drivers/md/dm-integrity.c | 5 +- drivers/md/dm-io.c | 5 +- drivers/md/dm-log-writes.c | 39 +- drivers/md/dm-rq.c | 26 +- drivers/md/dm-snap.c | 21 +- drivers/md/dm-thin.c | 41 +- drivers/md/dm-writecache.c | 7 +- drivers/md/dm-zoned-metadata.c | 26 +- drivers/md/dm-zoned-target.c | 3 +- drivers/md/dm.c | 172 ++--- drivers/md/md-faulty.c | 4 +- drivers/md/md-multipath.c | 13 +- drivers/md/md.c | 29 +- drivers/md/raid1.c | 47 +- drivers/md/raid10.c | 30 +- drivers/md/raid5-cache.c | 19 +- drivers/md/raid5-ppl.c | 26 +- drivers/md/raid5.c | 16 +- drivers/memstick/core/ms_block.c | 64 +- drivers/memstick/core/ms_block.h | 1 - drivers/memstick/core/mspro_block.c | 57 +- drivers/mtd/mtdswap.c | 2 +- drivers/mtd/nand/raw/sharpsl.c | 1 - drivers/nvdimm/blk.c | 1 - drivers/nvdimm/btt.c | 1 - drivers/nvdimm/btt_devs.c | 1 - drivers/nvdimm/bus.c | 1 - drivers/nvdimm/nd_virtio.c | 6 +- drivers/nvdimm/pfn_devs.c | 1 - drivers/nvme/target/io-cmd-bdev.c | 18 +- drivers/nvme/target/passthru.c | 7 +- drivers/nvme/target/zns.c | 14 +- drivers/s390/block/dasd_int.h | 1 - drivers/s390/block/scm_blk.c | 1 - drivers/s390/block/scm_blk.h | 1 - drivers/scsi/scsi_debug.c | 1 - drivers/scsi/scsi_lib.c | 2 +- drivers/scsi/scsicam.c | 1 - drivers/scsi/sd.c | 115 +--- drivers/scsi/sd.h | 12 +- drivers/scsi/sr.c | 131 +--- drivers/scsi/sr.h | 6 - drivers/scsi/st.c | 1 - drivers/scsi/st.h | 1 - drivers/scsi/ufs/ufshpb.c | 4 +- drivers/target/target_core_iblock.c | 12 +- drivers/target/target_core_pscsi.c | 1 - fs/btrfs/check-integrity.c | 1 - fs/btrfs/disk-io.c | 10 +- fs/btrfs/extent_io.c | 6 +- fs/buffer.c | 14 +- fs/crypto/bio.c | 13 +- fs/dax.c | 1 - fs/direct-io.c | 5 +- fs/erofs/zdata.c | 5 +- fs/ext4/page-io.c | 8 +- fs/ext4/readpage.c | 8 +- fs/f2fs/data.c | 7 +- fs/fs-writeback.c | 6 +- fs/gfs2/lops.c | 8 +- fs/gfs2/meta_io.c | 4 +- fs/gfs2/ops_fstype.c | 4 +- fs/gfs2/sys.c | 2 +- fs/hfs/mdb.c | 2 +- fs/hfsplus/wrapper.c | 5 +- fs/iomap/buffered-io.c | 26 +- fs/iomap/direct-io.c | 8 +- fs/jfs/jfs_logmgr.c | 11 +- fs/jfs/jfs_metapage.c | 9 +- fs/ksmbd/vfs.c | 1 - fs/mpage.c | 34 +- fs/nfs/blocklayout/blocklayout.c | 26 +- fs/nfs/blocklayout/rpc_pipefs.c | 1 - fs/nfsd/blocklayout.c | 1 - fs/nilfs2/segbuf.c | 31 +- fs/ntfs3/fsntfs.c | 36 +- fs/ocfs2/cluster/heartbeat.c | 4 +- fs/squashfs/block.c | 11 +- fs/xfs/xfs_bio_io.c | 14 +- fs/xfs/xfs_buf.c | 4 +- fs/xfs/xfs_log.c | 14 +- fs/zonefs/super.c | 9 +- include/linux/bio.h | 38 +- include/linux/blk-cgroup.h | 461 +------------- include/linux/blk-mq.h | 6 +- include/linux/blk_types.h | 10 +- include/linux/blkdev.h | 296 ++++++++- include/linux/genhd.h | 291 --------- include/linux/part_stat.h | 2 +- include/linux/sbitmap.h | 51 +- include/scsi/scsi_cmnd.h | 9 - include/scsi/scsi_driver.h | 9 +- include/trace/events/block.h | 49 +- init/do_mounts.c | 1 - kernel/exit.c | 2 +- kernel/power/hibernate.c | 1 - kernel/power/swap.c | 6 +- kernel/sched/core.c | 7 +- lib/sbitmap.c | 40 +- mm/page_io.c | 10 +- security/integrity/ima/ima_policy.c | 1 - 196 files changed, 2412 insertions(+), 3998 deletions(-) delete mode 100644 Documentation/block/biodoc.rst create mode 100644 block/blk-cgroup.h create mode 100644 block/blk-crypto-sysfs.c delete mode 100644 include/linux/genhd.h -- Jens Axboe