Hi Jens, this series is posted early because it has wide-ranging changes and could use some early ACKs before -rc1. It changes the interface to the bio allocators to always pass a block_device and the operation, which is information needed for every bio submitted through bio_submit. This means the fields can be directly initialized in bio_init instead of first being zeroed and thus should help to micro-optimize even better than the __bio_set_dev that Pavel proposed while also cleaning up code. I have a follow on series to also deal with the bio cloning interfaces that need even more love, and additional cleanups for the callers which might be material for the next merge window. Diffstat: block/bio.c | 73 ++++++++++++++++++++++++------------ block/blk-flush.c | 4 - block/blk-lib.c | 32 ++------------- block/blk-zoned.c | 14 +----- block/blk.h | 2 block/bounce.c | 6 -- block/fops.c | 35 +++++++---------- drivers/block/drbd/drbd_actlog.c | 5 -- drivers/block/drbd/drbd_bitmap.c | 7 +-- drivers/block/drbd/drbd_receiver.c | 31 +++------------ drivers/block/floppy.c | 4 - drivers/block/pktcdvd.c | 8 --- drivers/block/rnbd/rnbd-srv-dev.c | 61 ------------------------------ drivers/block/rnbd/rnbd-srv-dev.h | 18 -------- drivers/block/rnbd/rnbd-srv.c | 45 ++++++++-------------- drivers/block/rnbd/rnbd-srv.h | 1 drivers/block/xen-blkback/blkback.c | 25 ++---------- drivers/block/zram/zram_drv.c | 16 ++----- drivers/md/bcache/io.c | 3 - drivers/md/bcache/journal.c | 16 ++----- drivers/md/bcache/movinggc.c | 4 - drivers/md/bcache/request.c | 18 +++----- drivers/md/bcache/super.c | 8 +-- drivers/md/bcache/writeback.c | 4 - drivers/md/dm-crypt.c | 27 ++++--------- drivers/md/dm-io.c | 5 -- drivers/md/dm-log-writes.c | 39 +++---------------- 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.c | 12 ++--- drivers/md/md-multipath.c | 2 drivers/md/md.c | 24 +++++------ drivers/md/raid1.c | 8 +-- drivers/md/raid10.c | 14 ++---- drivers/md/raid5-cache.c | 19 +++------ drivers/md/raid5-ppl.c | 13 ++---- drivers/md/raid5.c | 12 ++--- drivers/nvdimm/nd_virtio.c | 6 +- drivers/nvme/target/io-cmd-bdev.c | 18 +++----- drivers/nvme/target/passthru.c | 7 +-- drivers/nvme/target/zns.c | 14 +++--- drivers/scsi/ufs/ufshpb.c | 4 - drivers/target/target_core_iblock.c | 11 +---- fs/btrfs/disk-io.c | 10 +--- fs/btrfs/extent_io.c | 2 fs/buffer.c | 14 ++---- fs/crypto/bio.c | 13 ++---- fs/direct-io.c | 5 -- fs/erofs/zdata.c | 5 -- fs/ext4/page-io.c | 3 - fs/ext4/readpage.c | 8 +-- fs/f2fs/data.c | 7 +-- fs/gfs2/lops.c | 8 +-- fs/gfs2/meta_io.c | 4 - fs/gfs2/ops_fstype.c | 4 - fs/hfsplus/wrapper.c | 4 - 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/mpage.c | 34 ++-------------- fs/nfs/blocklayout/blocklayout.c | 26 +----------- fs/nilfs2/segbuf.c | 31 +-------------- fs/ntfs3/fsntfs.c | 27 ------------- 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 | 30 ++++++-------- kernel/power/swap.c | 5 -- mm/page_io.c | 10 +--- 75 files changed, 372 insertions(+), 758 deletions(-)