mbox series

[GIT,PULL] Block changes for 5.10

Message ID 774c987e-0743-6a7b-cfa7-1c65c35931b3@kernel.dk (mailing list archive)
State New, archived
Headers show
Series [GIT,PULL] Block changes for 5.10 | expand

Pull-request

git://git.kernel.dk/linux-block.git tags/for-5.11/block-2020-12-14

Message

Jens Axboe Dec. 14, 2020, 3:06 p.m. UTC
Hi Linus,

Another series of killing more code than what is being added, again
thanks to Christoph's relentless cleanups and tech debt tackling. Note
that there are a fix merge resolutions that need to be done, see below
changelog.

This pull request contains:

- blk-iocost improvements (Baolin Wang)

- part0 iostat fix (Jeffle Xu)

- Disable iopoll for split bios (Jeffle Xu)

- block tracepoint cleanups (Christoph Hellwig)

- Merging of struct block_device and hd_struct (Christoph Hellwig)

- Rework/cleanup of how block device sizes are updated (Christoph
  Hellwig)

- Simplification of gendisk lookup and removal of block device aliasing
  (Christoph Hellwig)

- Block device ioctl cleanups (Christoph Hellwig)

- Removal of bdget()/blkdev_get() as exported API (Christoph Hellwig)

- Disk change rework, avoid ->revalidate_disk() (Christoph Hellwig)

- sbitmap improvements (Pavel Begunkov)

- Hybrid polling fix (Pavel Begunkov)

- bvec iteration improvements (Pavel Begunkov)

- Zone revalidation fixes (Damien Le Moal)

- blk-throttle limit fix (Yu Kuai)

- Various little fixes

Note that pulling this will throw a merge conflict due to the late
reverts of the md discard bits, and also a silent merge failure due to a
late fix (b7131ee0bac5) for 5.10 fixing a memory leak. Three in total,
they are:

- drivers/md/md.c: this one does throw a merge error, fix is simply
  removing md_submit_discard_bio().

- drivers/md/raid0.c: Remove the first argument to
  trace_block_bio_remap().

- block/blk-cgroup.c: remove disk_put_part(part) in
  blkcg_fill_root_iostats().

I've pushed out a for-5.11/block-merged branch that has these
resolutions in place, for reference.

Please pull!


The following changes since commit 09162bc32c880a791c6c0668ce0745cf7958f576:

  Linux 5.10-rc4 (2020-11-15 16:44:31 -0800)

are available in the Git repository at:

  git://git.kernel.dk/linux-block.git tags/for-5.11/block-2020-12-14

for you to fetch changes up to fa94ba8a7b22890e6a17b39b9359e114fe18cd59:

  blk-mq: fix msec comment from micro to milli seconds (2020-12-12 11:13:41 -0700)

----------------------------------------------------------------
for-5.11/block-2020-12-14

----------------------------------------------------------------
Baolin Wang (5):
      blk-iocost: Fix some typos in comments
      blk-iocost: Remove unnecessary advance declaration
      blk-iocost: Move the usage ratio calculation to the correct place
      blk-iocost: Factor out the active iocgs' state check into a separate function
      blk-iocost: Factor out the base vrate change into a separate function

Christoph Hellwig (102):
      mtd_blkdevs: don't override BLKFLSBUF
      block: don't call into the driver for BLKFLSBUF
      block: add a new set_read_only method
      rbd: implement ->set_read_only to hook into BLKROSET processing
      md: implement ->set_read_only to hook into BLKROSET processing
      dasd: implement ->set_read_only to hook into BLKROSET processing
      block: don't call into the driver for BLKROSET
      loop: use set_disk_ro
      block: remove set_device_ro
      block: remove __blkdev_driver_ioctl
      block: cleanup del_gendisk a bit
      block: open code kobj_map into in block/genhd.c
      block: split block_class_lock
      block: rework requesting modules for unclaimed devices
      block: add an optional probe callback to major_names
      ide: remove ide_{,un}register_region
      swim: don't call blk_register_region
      sd: use __register_blkdev to avoid a modprobe for an unregistered dev_t
      brd: use __register_blkdev to allocate devices on demand
      loop: use __register_blkdev to allocate devices on demand
      md: use __register_blkdev to allocate devices on demand
      ide: switch to __register_blkdev for command set probing
      floppy: use a separate gendisk for each media format
      amiflop: use separate gendisks for Amiga vs MS-DOS mode
      ataflop: use a separate gendisk for each media format
      z2ram: reindent
      z2ram: use separate gendisk for the different modes
      block: switch gendisk lookup to a simple xarray
      block: fix the kerneldoc comment for __register_blkdev
      block: remove the call to __invalidate_device in check_disk_size_change
      loop: let set_capacity_revalidate_and_notify update the bdev size
      nvme: let set_capacity_revalidate_and_notify update the bdev size
      sd: update the bdev size in sd_revalidate_disk
      block: remove the update_bdev parameter to set_capacity_revalidate_and_notify
      nbd: remove the call to set_blocksize
      nbd: move the task_recv check into nbd_size_update
      nbd: refactor size updates
      nbd: validate the block size in nbd_set_size
      nbd: use set_capacity_and_notify
      aoe: don't call set_capacity from irq context
      dm: use set_capacity_and_notify
      pktcdvd: use set_capacity_and_notify
      nvme: use set_capacity_and_notify in nvme_set_queue_dying
      drbd: use set_capacity_and_notify
      rbd: use set_capacity_and_notify
      rnbd: use set_capacity_and_notify
      zram: use set_capacity_and_notify
      dm-raid: use set_capacity_and_notify
      md: use set_capacity_and_notify
      md: remove a spurious call to revalidate_disk_size in update_size
      virtio-blk: remove a spurious call to revalidate_disk_size
      block: unexport revalidate_disk_size
      filemap: consistently use ->f_mapping over ->i_mapping
      fs: remove get_super_thawed and get_super_exclusive_thawed
      fs: simplify freeze_bdev/thaw_bdev
      mtip32xx: remove the call to fsync_bdev on removal
      zram: do not call set_blocksize
      loop: do not call set_blocksize
      dm: simplify flush_bio initialization in __send_empty_flush
      dm: remove the block_device reference in struct mapped_device
      block: remove a duplicate __disk_get_part prototype
      block: remove a superflous check in blkpg_do_ioctl
      block: add a bdev_kobj helper
      block: use disk_part_iter_exit in disk_part_iter_next
      block: use put_device in put_disk
      block: change the hash used for looking up block devices
      block: switch bdgrab to use igrab
      init: refactor name_to_dev_t
      init: refactor devt_from_partuuid
      init: cleanup match_dev_by_uuid and match_dev_by_label
      block: refactor __blkdev_put
      block: refactor blkdev_get
      block: move bdput() to the callers of __blkdev_get
      block: opencode devcgroup_inode_permission
      block: remove i_bdev
      block: simplify bdev/disk lookup in blkdev_get
      block: remove ->bd_contains
      block: simplify the block device claiming interface
      block: simplify part_to_disk
      block: initialize struct block_device in bdev_alloc
      block: remove the nr_sects field in struct hd_struct
      block: move disk stat accounting to struct block_device
      block: move the start_sect field to struct block_device
      block: move the partition_meta_info to struct block_device
      block: move holder_dir to struct block_device
      block: move make_it_fail to struct block_device
      block: move the policy field to struct block_device
      block: allocate struct hd_struct as part of struct bdev_inode
      block: switch partition lookup to use struct block_device
      block: remove the partno field from struct hd_struct
      block: pass a block_device to blk_alloc_devt
      block: pass a block_device to invalidate_partition
      block: switch disk_part_iter_* to use a struct block_device
      f2fs: remove a few bd_part checks
      block: merge struct block_device and struct hd_struct
      block: stop using bdget_disk for partition 0
      block: remove the unused block_sleeprq tracepoint
      block: simplify and extend the block_bio_merge tracepoint class
      block: remove the request_queue argument to the block_split tracepoint
      block: remove the request_queue argument to the block_bio_remap tracepoint
      block: remove the request_queue to argument request based tracepoints
      blktrace: fix up a kerneldoc comment

Damien Le Moal (1):
      block: Improve blk_revalidate_disk_zones() checks

Jeffle Xu (3):
      block: remove unused BIO_SPLIT_ENTRIES
      block: fix inflight statistics of part0
      block: disable iopoll for split bio

Lei Chen (1):
      block: wbt: Remove unnecessary invoking of wbt_update_limits in wbt_init

Ming Lei (3):
      blk-mq: add new API of blk_mq_hctx_set_fq_lock_class
      nvme-loop: use blk_mq_hctx_set_fq_lock_class to set loop's lock class
      Revert "block: Fix a lockdep complaint triggered by request queue flushing"

Minwoo Im (3):
      blk-mq: add helper allocating tagset->tags
      blk-mq: update arg in comment of blk_mq_map_queue
      blk-mq: fix msec comment from micro to milli seconds

Pavel Begunkov (7):
      block: optimise for_each_bvec() advance
      bio: optimise bvec iteration
      blk-mq: skip hybrid polling if iopoll doesn't spin
      sbitmap: optimise sbitmap_deferred_clear()
      sbitmap: remove swap_lock
      sbitmap: replace CAS with atomic and
      sbitmap: simplify wrap check

Yu Kuai (1):
      blk-throttle: don't check whether or not lower limit is valid if CONFIG_BLK_DEV_THROTTLING_LOW is off

 block/bio.c                                  |  10 +-
 block/blk-cgroup.c                           |  50 +-
 block/blk-core.c                             |  70 ++-
 block/blk-flush.c                            |  32 +-
 block/blk-iocost.c                           | 287 +++++-----
 block/blk-lib.c                              |   2 +-
 block/blk-merge.c                            |  18 +-
 block/blk-mq-sched.c                         |   2 +-
 block/blk-mq.c                               |  46 +-
 block/blk-mq.h                               |   9 +-
 block/blk-throttle.c                         |   6 +
 block/blk-wbt.c                              |   1 -
 block/blk-zoned.c                            |  16 +-
 block/blk.h                                  |  85 +--
 block/bounce.c                               |   2 +-
 block/genhd.c                                | 565 ++++++--------------
 block/ioctl.c                                |  74 +--
 block/partitions/core.c                      | 250 +++------
 drivers/block/amiflop.c                      |  98 ++--
 drivers/block/aoe/aoecmd.c                   |  15 +-
 drivers/block/ataflop.c                      | 135 +++--
 drivers/block/brd.c                          |  39 +-
 drivers/block/drbd/drbd_main.c               |   6 +-
 drivers/block/drbd/drbd_receiver.c           |   2 +-
 drivers/block/drbd/drbd_worker.c             |   3 +-
 drivers/block/floppy.c                       | 154 ++++--
 drivers/block/loop.c                         |  64 +--
 drivers/block/mtip32xx/mtip32xx.c            |  15 -
 drivers/block/mtip32xx/mtip32xx.h            |   2 -
 drivers/block/nbd.c                          |  94 ++--
 drivers/block/pktcdvd.c                      |   9 +-
 drivers/block/rbd.c                          |  43 +-
 drivers/block/rnbd/rnbd-clt.c                |   3 +-
 drivers/block/swim.c                         |  17 -
 drivers/block/virtio_blk.c                   |   3 +-
 drivers/block/xen-blkback/common.h           |   4 +-
 drivers/block/xen-blkfront.c                 |  22 +-
 drivers/block/z2ram.c                        | 547 ++++++++++---------
 drivers/block/zram/zram_drv.c                |  34 +-
 drivers/block/zram/zram_drv.h                |   1 -
 drivers/ide/ide-probe.c                      |  66 +--
 drivers/ide/ide-tape.c                       |   2 -
 drivers/md/bcache/request.c                  |   9 +-
 drivers/md/bcache/super.c                    |  29 +-
 drivers/md/dm-core.h                         |   7 -
 drivers/md/dm-raid.c                         |   3 +-
 drivers/md/dm-rq.c                           |   2 +-
 drivers/md/dm-table.c                        |   9 +-
 drivers/md/dm.c                              |  58 +-
 drivers/md/md-cluster.c                      |   8 +-
 drivers/md/md-linear.c                       |   6 +-
 drivers/md/md.c                              | 120 ++---
 drivers/md/raid0.c                           |   4 +-
 drivers/md/raid1.c                           |   7 +-
 drivers/md/raid10.c                          |   6 +-
 drivers/md/raid5.c                           |  15 +-
 drivers/mtd/mtd_blkdevs.c                    |  28 -
 drivers/mtd/mtdsuper.c                       |  17 +-
 drivers/nvme/host/core.c                     |  18 +-
 drivers/nvme/host/multipath.c                |   3 +-
 drivers/nvme/target/admin-cmd.c              |  20 +-
 drivers/nvme/target/loop.c                   |  10 +
 drivers/s390/block/dasd.c                    |   9 +-
 drivers/s390/block/dasd_int.h                |   3 +-
 drivers/s390/block/dasd_ioctl.c              |  36 +-
 drivers/s390/scsi/zfcp_fsf.c                 |   3 +-
 drivers/scsi/scsicam.c                       |   2 +-
 drivers/scsi/sd.c                            |  28 +-
 drivers/target/target_core_file.c            |   6 +-
 drivers/target/target_core_pscsi.c           |   5 +-
 drivers/usb/gadget/function/storage_common.c |   8 +-
 fs/block_dev.c                               | 755 ++++++++++-----------------
 fs/btrfs/sysfs.c                             |  15 +-
 fs/btrfs/volumes.c                           |  13 +-
 fs/buffer.c                                  |   2 +-
 fs/ext4/ioctl.c                              |   2 +-
 fs/ext4/super.c                              |  18 +-
 fs/ext4/sysfs.c                              |  10 +-
 fs/f2fs/checkpoint.c                         |   5 +-
 fs/f2fs/f2fs.h                               |   2 +-
 fs/f2fs/file.c                               |  14 +-
 fs/f2fs/super.c                              |   8 +-
 fs/f2fs/sysfs.c                              |   9 -
 fs/inode.c                                   |   3 -
 fs/internal.h                                |   7 +-
 fs/io_uring.c                                |  10 +-
 fs/pipe.c                                    |   5 +-
 fs/pstore/blk.c                              |   2 +-
 fs/quota/quota.c                             |  40 +-
 fs/statfs.c                                  |   2 +-
 fs/super.c                                   |  93 +---
 fs/xfs/xfs_fsops.c                           |   7 +-
 include/linux/bio.h                          |  23 +-
 include/linux/blk-cgroup.h                   |   4 +-
 include/linux/blk-mq.h                       |   3 +
 include/linux/blk_types.h                    |  24 +-
 include/linux/blkdev.h                       |  34 +-
 include/linux/blktrace_api.h                 |   5 +-
 include/linux/bvec.h                         |  20 +-
 include/linux/fs.h                           |   5 +-
 include/linux/genhd.h                        | 127 ++---
 include/linux/ide.h                          |   3 -
 include/linux/part_stat.h                    |  45 +-
 include/linux/sbitmap.h                      |   5 -
 include/trace/events/block.h                 | 228 ++------
 init/do_mounts.c                             | 271 +++++-----
 kernel/trace/blktrace.c                      | 181 ++-----
 lib/sbitmap.c                                |  44 +-
 mm/filemap.c                                 |  13 +-
 109 files changed, 2108 insertions(+), 3331 deletions(-)

Comments

Jens Axboe Dec. 16, 2020, 2:17 p.m. UTC | #1
On 12/14/20 8:06 AM, Jens Axboe wrote:
> Hi Linus,
> 
> Another series of killing more code than what is being added, again
> thanks to Christoph's relentless cleanups and tech debt tackling. Note
> that there are a fix merge resolutions that need to be done, see below
> changelog.
> 
> This pull request contains:
> 
> - blk-iocost improvements (Baolin Wang)
> 
> - part0 iostat fix (Jeffle Xu)
> 
> - Disable iopoll for split bios (Jeffle Xu)
> 
> - block tracepoint cleanups (Christoph Hellwig)
> 
> - Merging of struct block_device and hd_struct (Christoph Hellwig)
> 
> - Rework/cleanup of how block device sizes are updated (Christoph
>   Hellwig)
> 
> - Simplification of gendisk lookup and removal of block device aliasing
>   (Christoph Hellwig)
> 
> - Block device ioctl cleanups (Christoph Hellwig)
> 
> - Removal of bdget()/blkdev_get() as exported API (Christoph Hellwig)
> 
> - Disk change rework, avoid ->revalidate_disk() (Christoph Hellwig)
> 
> - sbitmap improvements (Pavel Begunkov)
> 
> - Hybrid polling fix (Pavel Begunkov)
> 
> - bvec iteration improvements (Pavel Begunkov)
> 
> - Zone revalidation fixes (Damien Le Moal)
> 
> - blk-throttle limit fix (Yu Kuai)
> 
> - Various little fixes
> 
> Note that pulling this will throw a merge conflict due to the late
> reverts of the md discard bits, and also a silent merge failure due to a
> late fix (b7131ee0bac5) for 5.10 fixing a memory leak. Three in total,
> they are:
> 
> - drivers/md/md.c: this one does throw a merge error, fix is simply
>   removing md_submit_discard_bio().
> 
> - drivers/md/raid0.c: Remove the first argument to
>   trace_block_bio_remap().
> 
> - block/blk-cgroup.c: remove disk_put_part(part) in
>   blkcg_fill_root_iostats().
> 
> I've pushed out a for-5.11/block-merged branch that has these
> resolutions in place, for reference.

With the btrfs tree merged, you'll know need to edit fs/btrfs/zoned.c
and apply the below incremental when this is pulled:

diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c
index 155545180046..c38846659019 100644
--- a/fs/btrfs/zoned.c
+++ b/fs/btrfs/zoned.c
@@ -165,7 +165,7 @@ int btrfs_get_dev_zone_info(struct btrfs_device *device)
 	if (!zone_info)
 		return -ENOMEM;
 
-	nr_sectors = bdev->bd_part->nr_sects;
+	nr_sectors = bdev_nr_sectors(bdev);
 	zone_sectors = bdev_zone_sectors(bdev);
 	/* Check if it's power of 2 (see is_power_of_2) */
 	ASSERT(zone_sectors != 0 && (zone_sectors & (zone_sectors - 1)) == 0);
@@ -505,7 +505,7 @@ int btrfs_sb_log_location_bdev(struct block_device *bdev, int mirror, int rw,
 		return -EINVAL;
 	zone_size = zone_sectors << SECTOR_SHIFT;
 	zone_sectors_shift = ilog2(zone_sectors);
-	nr_sectors = bdev->bd_part->nr_sects;
+	nr_sectors = bdev_nr_sectors(bdev);
 	nr_zones = nr_sectors >> zone_sectors_shift;
 
 	sb_zone = sb_zone_number(zone_sectors_shift + SECTOR_SHIFT, mirror);
@@ -603,7 +603,7 @@ int btrfs_reset_sb_log_zones(struct block_device *bdev, int mirror)
 
 	zone_sectors = bdev_zone_sectors(bdev);
 	zone_sectors_shift = ilog2(zone_sectors);
-	nr_sectors = bdev->bd_part->nr_sects;
+	nr_sectors = bdev_nr_sectors(bdev);
 	nr_zones = nr_sectors >> zone_sectors_shift;
 
 	sb_zone = sb_zone_number(zone_sectors_shift + SECTOR_SHIFT, mirror);
pr-tracker-bot@kernel.org Dec. 16, 2020, 9:18 p.m. UTC | #2
The pull request you sent on Mon, 14 Dec 2020 08:06:21 -0700:

> git://git.kernel.dk/linux-block.git tags/for-5.11/block-2020-12-14

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/ac7ac4618cf25e0d5cd8eba83d5f600084b65b9a

Thank you!