Hi Linus, Here are the core block changes for 5.19. This pull request contains: - blk-throttle accounting fix (Laibin) - Series removing redundant assignments (Michal) - Expose bio cache via the bio_set, so that DM can use it (Mike) - Series finishing off the bio allocation interface cleanups by dealing with the weirdest member of the family. bio_kmalloc combines a kmalloc for the bio and bio_vecs with a hidden bio_init call and magic cleanup semantics (Christoph) - Series cleaning up the block layer API so that APIs consumed by file systems are (almost) only struct block_device based, so that file systems don't have to poke into block layer internals like the request_queue (Christoph) - Series cleaning up the blk_execute_rq* API (Christoph) - Series cleaning up various lose end in the blk-cgroup code to make it easier to follow in preparation of reworking the blkcg assignment for bios (Christoph) - BFQ series fixing use-after-free issues in BFQ when processes with merged queues get moved to different cgroups (Jan) - BFQ fies (Jan) - Various fixes and cleanups (Bart, Chengming, Fanjun, Julia, Ming, Wolfgang, me) Please pull! The following changes since commit b2d229d4ddb17db541098b83524d901257e93845: Linux 5.18-rc3 (2022-04-17 13:57:31 -0700) are available in the Git repository at: git://git.kernel.dk/linux-block.git tags/for-5.19/block-2022-05-22 for you to fetch changes up to 2aaf516084184e4e6f80da01b2b3ed882fd20a79: blk-mq: fix typo in comment (2022-05-21 06:32:16 -0600) ---------------------------------------------------------------- for-5.19/block-2022-05-22 ---------------------------------------------------------------- Bart Van Assche (1): block: Fix the bio.bi_opf comment Chengming Zhou (1): blk-iocost: combine local_stat and desc_stat to stat Christoph Hellwig (52): btrfs: simplify ->flush_bio handling squashfs: always use bio_kmalloc in squashfs_bio_read target/pscsi: remove pscsi_get_bio block: turn bio_kmalloc into a simple kmalloc wrapper pktcdvd: stop using bio_reset target: remove an incorrect unmap zeroes data deduction target: pass a block_device to target_configure_unmap_from_queue target: fix discard alignment on partitions drbd: remove assign_p_sizes_qlim drbd: use bdev based limit helpers in drbd_send_sizes drbd: use bdev_alignment_offset instead of queue_alignment_offset drbd: cleanup decide_on_discard_support btrfs: use bdev_max_active_zones instead of open coding it ntfs3: use bdev_logical_block_size instead of open coding it mm: use bdev_is_zoned in claim_swapfile block: add a bdev_nonrot helper block: add a bdev_write_cache helper block: add a bdev_fua helper block: add a bdev_stable_writes helper block: add a bdev_max_zone_append_sectors helper block: use bdev_alignment_offset in part_alignment_offset_show block: use bdev_alignment_offset in disk_alignment_offset_show block: move bdev_alignment_offset and queue_limit_alignment_offset out of line block: remove queue_discard_alignment block: use bdev_discard_alignment in part_discard_alignment_show block: move {bdev,queue_limit}_discard_alignment out of line block: refactor discard bio size limiting block: add a bdev_max_discard_sectors helper block: remove QUEUE_FLAG_DISCARD block: add a bdev_discard_granularity helper block: decouple REQ_OP_SECURE_ERASE from REQ_OP_DISCARD direct-io: remove random prefetches blk-cgroup: remove __bio_blkcg nvme-fc: don't support the appid attribute without CONFIG_BLK_CGROUP_FC_APPID nvme-fc: fold t fc_update_appid into fc_appid_store blk-cgroup: move blkcg_{get,set}_fc_appid out of line blk-cgroup: move blk_cgroup_congested out line blk-cgroup: move blkcg_{pin,unpin}_online out of line blk-cgroup: move struct blkcg to block/blk-cgroup.h blktrace: cleanup the __trace_note_message interface blk-cgroup: replace bio_blkcg with bio_blkcg_css blk-cgroup: remove pointless CONFIG_BLOCK ifdefs blk-cgroup: remove unneeded includes from <linux/blk-cgroup.h> blk-cgroup: move blkcg_css to blk-cgroup.c blk-cgroup: cleanup blk_cgroup_congested blk-cgroup: cleanup blkcg_maybe_throttle_current kthread: unexport kthread_blkcg block: remove superfluous calls to blkcg_bio_issue_init block: allow passing a NULL bdev to bio_alloc_clone/bio_init_clone block: improve the error message from bio_check_eod block: reorder the REQ_ flags block: cleanup the VM accounting in submit_bio Fanjun Kong (1): blk-cgroup: Remove unnecessary rcu_read_lock/unlock() Jan Kara (13): bfq: Avoid false marking of bic as stably merged bfq: Avoid merging queues with different parents bfq: Split shared queues on move between cgroups bfq: Update cgroup information before merging bio bfq: Drop pointless unlock-lock pair bfq: Remove pointless bfq_init_rq() calls bfq: Track whether bfq_group is still online bfq: Get rid of __bio_blkcg() usage bfq: Make sure bfqg for which we are queueing requests is online bfq: Relax waker detection for shared queues bfq: Allow current waker to defend against a tentative one bfq: Remove superfluous conversion from RQ_BIC() bfq: Remove bfq_requeue_request_body() Jens Axboe (1): blk-cgroup: delete rcu_read_lock_held() WARN_ON_ONCE() Julia Lawall (1): blk-mq: fix typo in comment Laibin Qiu (1): blk-throttle: Set BIO_THROTTLED when bio has been throttled Michal Orzel (5): block/badblocks: Remove redundant assignments block/blk-map: Remove redundant assignment block/partitions/acorn: Remove redundant assignments block/partitions/atari: Remove redundant assignment block/partitions/ldm: Remove redundant assignments Mike Snitzer (2): block: allow using the per-cpu bio cache from bio_alloc_bioset block: allow use of per-cpu bio alloc cache by block drivers Ming Lei (2): block: change exported IO accounting interface from gendisk to bdev block: ignore RWF_HIPRI hint for sync dio Wolfgang Bumiller (1): blk-cgroup: always terminate io.stat lines Yu Kuai (2): block, bfq: protect 'bfqd->queued' by 'bfqd->lock' block, bfq: make bfq_has_work() more accurate arch/um/drivers/ubd_kern.c | 2 - block/Makefile | 1 + block/badblocks.c | 2 - block/bfq-cgroup.c | 111 +++++++++------ block/bfq-iosched.c | 95 +++++++------ block/bfq-iosched.h | 11 +- block/bio.c | 146 +++++++++----------- block/blk-cgroup-fc-appid.c | 57 ++++++++ block/blk-cgroup.c | 168 +++++++++++++++++------ block/blk-cgroup.h | 140 ++++++++++++------- block/blk-core.c | 81 ++++------- block/blk-crypto-fallback.c | 15 +- block/blk-iocost.c | 76 +++++------ block/blk-iolatency.c | 8 +- block/blk-lib.c | 124 ++++++++++------- block/blk-map.c | 47 ++++--- block/blk-mq-debugfs.c | 2 - block/blk-mq.c | 2 +- block/blk-settings.c | 74 +++++++++- block/blk-throttle.c | 5 +- block/blk.h | 21 --- block/bounce.c | 1 - block/fops.c | 35 ++--- block/genhd.c | 4 +- block/ioctl.c | 48 +++++-- block/partitions/acorn.c | 4 +- block/partitions/atari.c | 1 - block/partitions/core.c | 12 +- block/partitions/ldm.c | 15 +- drivers/block/drbd/drbd_main.c | 51 ++++--- drivers/block/drbd/drbd_nl.c | 94 ++++++------- drivers/block/drbd/drbd_receiver.c | 13 +- drivers/block/loop.c | 27 ++-- drivers/block/nbd.c | 5 +- drivers/block/null_blk/main.c | 1 - drivers/block/pktcdvd.c | 34 ++--- drivers/block/rbd.c | 1 - drivers/block/rnbd/rnbd-clt.c | 6 +- drivers/block/rnbd/rnbd-srv-dev.h | 8 +- drivers/block/rnbd/rnbd-srv.c | 5 +- drivers/block/virtio_blk.c | 2 - drivers/block/xen-blkback/blkback.c | 15 +- drivers/block/xen-blkback/xenbus.c | 9 +- drivers/block/xen-blkfront.c | 8 +- drivers/block/zram/zram_drv.c | 6 +- drivers/md/bcache/alloc.c | 2 +- drivers/md/bcache/debug.c | 10 +- drivers/md/bcache/request.c | 4 +- drivers/md/bcache/super.c | 3 +- drivers/md/bcache/sysfs.c | 2 +- drivers/md/dm-bufio.c | 9 +- drivers/md/dm-cache-target.c | 9 +- drivers/md/dm-clone-target.c | 9 +- drivers/md/dm-io.c | 2 +- drivers/md/dm-log-writes.c | 3 +- drivers/md/dm-raid.c | 9 +- drivers/md/dm-table.c | 25 +--- drivers/md/dm-thin.c | 15 +- drivers/md/dm.c | 3 +- drivers/md/md-linear.c | 11 +- drivers/md/md.c | 5 +- drivers/md/raid0.c | 7 - drivers/md/raid1.c | 30 ++-- drivers/md/raid10.c | 41 +++--- drivers/md/raid5-cache.c | 8 +- drivers/md/raid5.c | 14 +- drivers/mmc/core/queue.c | 3 +- drivers/mtd/mtd_blkdevs.c | 1 - drivers/nvme/host/core.c | 4 +- drivers/nvme/host/fc.c | 26 ++-- drivers/nvme/target/io-cmd-bdev.c | 2 +- drivers/nvme/target/zns.c | 3 +- drivers/s390/block/dasd_fba.c | 1 - drivers/scsi/lpfc/lpfc_scsi.c | 4 +- drivers/scsi/sd.c | 2 - drivers/target/target_core_device.c | 20 ++- drivers/target/target_core_file.c | 10 +- drivers/target/target_core_iblock.c | 17 +-- drivers/target/target_core_pscsi.c | 36 +---- fs/btrfs/disk-io.c | 11 +- fs/btrfs/extent-tree.c | 8 +- fs/btrfs/ioctl.c | 12 +- fs/btrfs/volumes.c | 15 +- fs/btrfs/volumes.h | 4 +- fs/btrfs/zoned.c | 3 +- fs/direct-io.c | 32 +---- fs/exfat/file.c | 5 +- fs/exfat/super.c | 10 +- fs/ext4/ioctl.c | 10 +- fs/ext4/mballoc.c | 10 +- fs/ext4/super.c | 10 +- fs/f2fs/f2fs.h | 3 +- fs/f2fs/file.c | 19 ++- fs/f2fs/segment.c | 8 +- fs/fat/file.c | 5 +- fs/fat/inode.c | 10 +- fs/gfs2/rgrp.c | 7 +- fs/iomap/direct-io.c | 10 +- fs/jbd2/journal.c | 9 +- fs/jfs/ioctl.c | 5 +- fs/jfs/super.c | 8 +- fs/nilfs2/ioctl.c | 6 +- fs/nilfs2/sufile.c | 4 +- fs/nilfs2/the_nilfs.c | 4 +- fs/ntfs3/file.c | 6 +- fs/ntfs3/super.c | 10 +- fs/ocfs2/ioctl.c | 5 +- fs/squashfs/block.c | 20 ++- fs/super.c | 2 +- fs/xfs/xfs_discard.c | 8 +- fs/xfs/xfs_log_cil.c | 2 +- fs/xfs/xfs_super.c | 12 +- fs/zonefs/super.c | 3 +- include/linux/backing-dev.h | 6 +- include/linux/bio.h | 10 +- include/linux/blk-cgroup.h | 258 +++-------------------------------- include/linux/blk_types.h | 21 +-- include/linux/blkdev.h | 119 +++++++--------- include/linux/blktrace_api.h | 10 +- include/linux/kthread.h | 4 - include/target/target_core_backend.h | 4 +- kernel/kthread.c | 1 - kernel/trace/blktrace.c | 26 ++-- mm/backing-dev.c | 19 ++- mm/page_io.c | 4 +- mm/readahead.c | 1 + mm/swapfile.c | 32 ++--- 127 files changed, 1248 insertions(+), 1506 deletions(-) create mode 100644 block/blk-cgroup-fc-appid.c -- Jens Axboe