Hi Linus, Nothing major in here - lots of good cleanups and tech debt handling, which is also evident in the diffstats. In particular: - Add disk sequence numbers (Matteo) - Discard merge fix (Ming) - Relax disk zoned reporting restrictions (Niklas) - Bio error handling zoned leak fix (Pavel) - Start of proper add_disk() error handling (Luis, Christoph) - blk crypto fix (Eric) - Non-standard GPT location support (Dmitry) - IO priority improvements and cleanups (Damien)o - blk-throtl improvements (Chunguang) - diskstats_show() stack reduction (Abd-Alrhman) - Loop scheduler selection (Bart) - Switch block layer to use kmap_local_page() (Christoph) - Remove obsolete disk_name helper (Christoph) - block_device refcounting improvements (Christoph) - Ensure gendisk always has a request queue reference (Christoph) - Misc fixes/cleanups (Shaokun, Oliver, Guoqing) Note that this will throw two conflicts when being pulled in: 1) block/mq-deadline-cgroup.c - this one got reverted late in the 5.14 cycle, git rm is the right resolution here. 2) drivers/block/virtio_blk.c - error handling fix later in the 5.14 cycle ends up touching the same out path. My resolution: diff --cc drivers/block/virtio_blk.c index afb37aac09e8,63dc121a4c43..2a5e27bb8e59 --- a/drivers/block/virtio_blk.c +++ b/drivers/block/virtio_blk.c @@@ -902,10 -875,13 +899,13 @@@ static int virtblk_probe(struct virtio_ virtblk_update_capacity(vblk, false); virtio_device_ready(vdev); - device_add_disk(&vdev->dev, vblk->disk, virtblk_attr_groups); + err = device_add_disk(&vdev->dev, vblk->disk, virtblk_attr_groups); + if (err) - goto out_cleanup_disk; ++ goto err_cleanup_disk; + return 0; -out_cleanup_disk: +err_cleanup_disk: blk_cleanup_disk(vblk->disk); out_free_tags: blk_mq_free_tag_set(&vblk->tag_set); Apart from that, all clean. Please pull! The following changes since commit c500bee1c5b2f1d59b1081ac879d73268ab0ff17: Linux 5.14-rc4 (2021-08-01 17:04:17 -0700) are available in the Git repository at: git://git.kernel.dk/linux-block.git tags/for-5.15/block-2021-08-30 for you to fetch changes up to 1d1cf156dc176e30eeaced5cf1450d582d387b81: sg: pass the device name to blk_trace_setup (2021-08-25 06:46:54 -0600) ---------------------------------------------------------------- for-5.15/block-2021-08-30 ---------------------------------------------------------------- Abd-Alrhman Masalkhi (1): block: reduce stack usage in diskstats_show Bart Van Assche (2): blk-mq: Introduce the BLK_MQ_F_NO_SCHED_BY_DEFAULT flag loop: Select I/O scheduler 'none' from inside add_disk() Christoph Hellwig (95): MIPS: don't include <linux/genhd.h> in <asm/mach-rc32434/rb.h> bvec: fix the include guards for bvec.h bvec: add a bvec_kmap_local helper bvec: add memcpy_{from,to}_bvec and memzero_bvec helper block: use memzero_page in zero_fill_bio rbd: use memzero_bvec dm-writecache: use bvec_kmap_local instead of bvec_kmap_irq ps3disk: use memcpy_{from,to}_bvec block: remove bvec_kmap_irq and bvec_kunmap_irq block: rewrite bio_copy_data_iter to use bvec_kmap_local and memcpy_to_bvec block: use memcpy_to_bvec in copy_to_high_bio_irq block: use memcpy_from_bvec in bio_copy_kern_endio_read block: use memcpy_from_bvec in __blk_queue_bounce block: use bvec_kmap_local in t10_pi_type1_{prepare,complete} block: use bvec_kmap_local in bio_integrity_process block: assert the locking state in delete_partition block: unhash the whole device inode earlier block: allocate bd_meta_info later in add_partitions block: change the refcounting for partitions loop: don't grab a reference to the block device block: remove bdgrab block: remove bdput block: use the %pg format specifier in printk_all_partitions block: use the %pg format specifier in show_partition block: simplify printing the device names disk_stack_limits block: simplify disk name formatting in check_partition block: remove disk_name() block: remove cmdline-parser.c block: make the block holder code optional block: remove the extra kobject reference in bd_link_disk_holder block: look up holders by bdev block: support delayed holder registration dm: cleanup cleanup_mapped_device dm: move setting md->type into dm_setup_md_queue dm: delay registering the gendisk block: remove support for delayed queue registrations mm: hide laptop_mode_wb_timer entirely behind the BDI API block: pass a gendisk to blk_queue_update_readahead block: add a queue_has_disk helper block: move the bdi from the request_queue to the gendisk block: remove the bd_bdi in struct block_device writeback: make the laptop_mode prototypes available unconditionally mmc: block: let device_add_disk create disk attributes mmc: block: cleanup gendisk creation nvme: remove the GENHD_FL_UP check in nvme_ns_remove nvme: replace the GENHD_FL_UP check in nvme_mpath_shutdown_disk sx8: use the internal state machine to check if del_gendisk needs to be called bcache: add proper error unwinding in bcache_device_init bcache: move the del_gendisk call out of bcache_device_free block: remove GENHD_FL_UP block: store a gendisk in struct parsed_partitions block: pass a gendisk to bdev_add_partition block: pass a gendisk to bdev_del_partition block: pass a gendisk to bdev_resize_partition block: free the extended dev_t minor later block: ensure the bdi is freed after inode_detach_wb bvec: add a bvec_virt helper block: use bvec_virt in bio_integrity_{process,free} dm: make EBS depend on !HIGHMEM dm-ebs: use bvec_virt dm-integrity: use bvec_virt squashfs: use bvec_virt rbd: use bvec_virt virtio_blk: use bvec_virt bcache: use bvec_virt sd: use bvec_virt ubd: use bvec_virt ps3vram: use bvec_virt dasd: use bvec_virt dcssblk: use bvec_virt nvme: use bvec_virt blk-cgroup: refactor blkcg_print_stat blk-cgroup: stop using seq_get_buf block: unexport blk_register_queue block: add back the bd_holder_dir reference in bd_link_disk_holder nvme: use blk_mq_alloc_disk st: do not allocate a gendisk sg: do not allocate a gendisk block: cleanup the lockdep handling in *alloc_disk block: remove alloc_disk and alloc_disk_node block: remove the minors argument to __alloc_disk_node block: pass a request_queue to __blk_alloc_disk block: hold a request_queue reference for the lifetime of struct gendisk block: add an explicit ->disk backpointer to the request_queue block: add a sanity check for a live disk in del_gendisk block: fold register_disk into device_add_disk block: call bdev_add later in device_add_disk block: create the bdi link earlier in device_add_disk block: call blk_integrity_add earlier in device_add_disk block: call blk_register_queue earlier in device_add_disk block: remove a pointless call to MINOR() in device_add_disk block: remove CONFIG_DEBUG_BLOCK_EXT_DEVT block: refine the disk_live check in del_gendisk block: mark blkdev_fsync static sg: pass the device name to blk_trace_setup Chunguang Xu (1): blk-throtl: optimize IOPS throttle for large IO scenarios Damien Le Moal (7): block: remove blk-mq-sysfs dead code block: bfq: fix bfq_set_next_ioprio_data() block: improve ioprio class description comment block: change ioprio_valid() to an inline function block: fix IOPRIO_PRIO_CLASS() and IOPRIO_PRIO_VALUE() macros block: Introduce IOPRIO_NR_LEVELS block: fix default IO priority handling Dmitry Osipenko (4): block: Add alternative_gpt_sector() operation partitions/efi: Support non-standard GPT location mmc: block: Support alternative_gpt_sector() operation mmc: sdhci-tegra: Enable MMC_CAP2_ALT_GPT_TEGRA Eric Biggers (1): blk-crypto: fix check for too-large dun_bytes Guoqing Jiang (1): block: move some macros to blkdev.h Luis Chamberlain (5): block: return errors from blk_integrity_add block: return errors from disk_alloc_events block: add error handling for device_add_disk / add_disk virtio_blk: add error handling support for add_disk() null_blk: add error handling support for add_disk() Matteo Croce (6): block: add disk sequence number block: export the diskseq in uevents block: add ioctl to read the disk sequence number block: export diskseq in sysfs block: add a helper to raise a media changed event loop: raise media_change event Ming Lei (1): block: return ELEVATOR_DISCARD_MERGE if possible Niklas Cassel (2): blk-zoned: allow zone management send operations without CAP_SYS_ADMIN blk-zoned: allow BLKREPORTZONE without CAP_SYS_ADMIN Oliver Hartkopp (1): ioprio: move user space relevant ioprio bits to UAPI includes Pavel Begunkov (1): bio: fix page leak bio_add_hw_page failure Shaokun Zhang (1): block, bfq: cleanup the repeated declaration Documentation/ABI/testing/sysfs-block | 12 + arch/m68k/configs/stmark2_defconfig | 1 - arch/mips/include/asm/mach-rc32434/rb.h | 2 - arch/riscv/configs/defconfig | 1 - arch/riscv/configs/rv32_defconfig | 1 - arch/um/drivers/ubd_kern.c | 3 +- block/Kconfig | 14 +- block/Makefile | 2 +- block/bfq-iosched.c | 17 +- block/bfq-iosched.h | 6 +- block/bfq-wf2q.c | 6 +- block/bio-integrity.c | 21 +- block/bio.c | 52 ++--- block/blk-cgroup.c | 139 +++++------- block/blk-core.c | 18 +- block/blk-crypto.c | 2 +- block/blk-integrity.c | 12 +- block/blk-iocost.c | 23 +- block/blk-iolatency.c | 38 ++-- block/blk-map.c | 2 +- block/blk-merge.c | 18 +- block/blk-mq-sysfs.c | 55 ----- block/blk-mq.c | 8 +- block/blk-settings.c | 34 +-- block/blk-sysfs.c | 35 +-- block/blk-throttle.c | 32 +++ block/blk-wbt.c | 8 +- block/blk-zoned.c | 6 - block/blk.h | 20 +- block/bounce.c | 39 +--- block/cmdline-parser.c | 255 --------------------- block/disk-events.c | 69 ++++-- block/elevator.c | 7 +- block/genhd.c | 385 ++++++++++++++++---------------- block/holder.c | 174 +++++++++++++++ block/ioctl.c | 16 +- block/ioprio.c | 9 +- block/mq-deadline-cgroup.c | 8 +- block/mq-deadline-main.c | 2 + block/partitions/Kconfig | 1 - block/partitions/acorn.c | 4 +- block/partitions/aix.c | 20 +- block/partitions/amiga.c | 7 +- block/partitions/atari.c | 4 +- block/partitions/check.h | 2 +- block/partitions/cmdline.c | 273 +++++++++++++++++++++- block/partitions/core.c | 73 +++--- block/partitions/efi.c | 48 ++-- block/partitions/ibm.c | 4 +- block/partitions/ldm.c | 18 +- block/partitions/mac.c | 2 +- block/partitions/msdos.c | 6 +- block/partitions/sgi.c | 5 +- block/partitions/sun.c | 5 +- block/t10-pi.c | 16 +- drivers/block/brd.c | 3 - drivers/block/drbd/drbd_nl.c | 2 +- drivers/block/drbd/drbd_req.c | 5 +- drivers/block/loop.c | 13 +- drivers/block/null_blk/main.c | 7 +- drivers/block/pktcdvd.c | 8 +- drivers/block/ps3disk.c | 18 +- drivers/block/ps3vram.c | 2 +- drivers/block/rbd.c | 18 +- drivers/block/sx8.c | 2 +- drivers/block/virtio_blk.c | 14 +- drivers/md/Kconfig | 4 +- drivers/md/bcache/Kconfig | 1 + drivers/md/bcache/btree.c | 2 +- drivers/md/bcache/super.c | 26 ++- drivers/md/bcache/util.h | 2 - drivers/md/dm-ebs-target.c | 2 +- drivers/md/dm-integrity.c | 4 +- drivers/md/dm-ioctl.c | 4 - drivers/md/dm-rq.c | 1 - drivers/md/dm-table.c | 2 +- drivers/md/dm-writecache.c | 5 +- drivers/md/dm.c | 32 ++- drivers/md/md.h | 4 +- drivers/mmc/core/block.c | 164 +++++++------- drivers/mmc/core/core.c | 35 +++ drivers/mmc/core/core.h | 2 + drivers/mmc/core/mmc.c | 2 + drivers/mmc/host/sdhci-tegra.c | 9 + drivers/nvme/host/core.c | 56 ++--- drivers/nvme/host/multipath.c | 2 +- drivers/s390/block/dasd_diag.c | 2 +- drivers/s390/block/dasd_eckd.c | 14 +- drivers/s390/block/dasd_fba.c | 4 +- drivers/s390/block/dasd_genhd.c | 7 +- drivers/s390/block/dcssblk.c | 3 +- drivers/scsi/sd.c | 8 +- drivers/scsi/sg.c | 32 +-- drivers/scsi/sr.c | 7 +- drivers/scsi/st.c | 49 +--- drivers/scsi/st.h | 2 +- fs/block_dev.c | 257 +++------------------ fs/f2fs/sysfs.c | 2 +- fs/fat/fatent.c | 1 + fs/nilfs2/super.c | 2 +- fs/squashfs/block.c | 7 +- fs/squashfs/lz4_wrapper.c | 2 +- fs/squashfs/lzo_wrapper.c | 2 +- fs/squashfs/xz_wrapper.c | 2 +- fs/squashfs/zlib_wrapper.c | 2 +- fs/squashfs/zstd_wrapper.c | 2 +- fs/super.c | 2 +- fs/xfs/xfs_buf.c | 2 +- include/linux/backing-dev.h | 2 +- include/linux/bio.h | 42 ---- include/linux/blk-cgroup.h | 4 +- include/linux/blk-mq.h | 16 +- include/linux/blk_types.h | 4 - include/linux/blkdev.h | 38 +++- include/linux/bvec.h | 64 +++++- include/linux/cmdline-parser.h | 46 ---- include/linux/device-mapper.h | 1 - include/linux/fs.h | 4 - include/linux/genhd.h | 70 +++--- include/linux/ioprio.h | 44 +--- include/linux/mmc/card.h | 1 + include/linux/mmc/host.h | 1 + include/linux/writeback.h | 5 - include/trace/events/kyber.h | 6 +- include/uapi/linux/fs.h | 1 + include/uapi/linux/ioprio.h | 52 +++++ init/do_mounts.c | 4 - lib/Kconfig.debug | 27 --- mm/backing-dev.c | 3 + mm/page-writeback.c | 2 - 130 files changed, 1584 insertions(+), 1755 deletions(-) delete mode 100644 block/cmdline-parser.c create mode 100644 block/holder.c delete mode 100644 include/linux/cmdline-parser.h create mode 100644 include/uapi/linux/ioprio.h -- Jens Axboe