[GIT PULL] Block updates for 6.10-rc1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Linus,

Here are the block updates for the 6.10 merge window. A pretty quiet
round on the block front this time. Notably absent are the nvme changes
for this series, as they have not been sent in yet. They will come in a
followup pull request before -rc1.

This pull request contains:

- Add a partscan attribute in sysfs, fixing an issue with systemd
  relying on an internal interface that went away.

- Attempt #2 at making long running discards interruptible. The previous
  attempt went into 6.9, but we ended up mostly reverting it as it had
  issues.

- Remove old ida_simple API in bcache

- Support for zoned write plugging, greatly improving the performance on
  zoned devices.

- Remove the old throttle low interface, which has been experimental
  since 2017 and never made it beyond that and isn't being used.

- Remove page->index debugging checks in brd, as it hasn't caught
  anything and prepares us for removing in struct page.

- MD pull request from Song

- Don't schedule block workers on isolated CPUs

This will throw a merge conflict in block/ioctl.c due to a fix that went
into 6.9 post -rc2, I'm attaching my resolution of it.

Outside of that, there are various conflicts with pending changes in the
other trees, I'll link them below. They are all pretty trivial. This is
mostly an issue with the VFS tree, something we really need to
coordinate better going forward.

https://lore.kernel.org/all/20240402112137.1ee85957@xxxxxxxxxxxxxxxx/
https://lore.kernel.org/all/20240402112746.3864d8a6@xxxxxxxxxxxxxxxx/
https://lore.kernel.org/all/20240416124426.624cfaf9@xxxxxxxxxxxxxxxx/
https://lore.kernel.org/all/20240508130207.3d83702f@xxxxxxxxxxxxxxxx/
https://lore.kernel.org/all/20240510123419.42f727c1@xxxxxxxxxxxxxxxx/

Please pull!


The following changes since commit 39cd87c4eb2b893354f3b850f916353f2658ae6f:

  Linux 6.9-rc2 (2024-03-31 14:32:39 -0700)

are available in the Git repository at:

  git://git.kernel.dk/linux.git tags/for-6.10/block-20240511

for you to fetch changes up to a3166c51702bb00b8f8b84022090cbab8f37be1a:

  blk-throttle: delay initialization until configuration (2024-05-09 09:44:56 -0600)

----------------------------------------------------------------
for-6.10/block-20240511

----------------------------------------------------------------
Christoph Hellwig (12):
      block: add a bio_list_merge_init helper
      blk-cgroup: use bio_list_merge_init
      dm: use bio_list_merge_init
      btrfs use bio_list_merge_init
      block: add a disk_has_partscan helper
      block: add a partscan sysfs attribute for disks
      block: refine the EOF check in blkdev_iomap_begin
      block: remove the discard_granularity check in __blkdev_issue_discard
      block: move discard checks into the ioctl handler
      block: add a bio_chain_and_submit helper
      block: add a blk_alloc_discard_bio helper
      blk-lib: check for kill signal in ioctl BLKDISCARD

Christophe JAILLET (1):
      bcache: Remove usage of the deprecated ida_simple_xx() API

Damien Le Moal (46):
      block: Restore sector of flush requests
      block: Remove req_bio_endio()
      block: Introduce blk_zone_update_request_bio()
      block: Introduce bio_straddles_zones() and bio_offset_from_zone_start()
      block: Allow using bio_attempt_back_merge() internally
      block: Remember zone capacity when revalidating zones
      block: Introduce zone write plugging
      block: Fake max open zones limit when there is no limit
      block: Allow zero value of max_zone_append_sectors queue limit
      block: Implement zone append emulation
      block: Allow BIO-based drivers to use blk_revalidate_disk_zones()
      dm: Use the block layer zone append emulation
      scsi: sd: Use the block layer zone append emulation
      ublk_drv: Do not request ELEVATOR_F_ZBD_SEQ_WRITE elevator feature
      null_blk: Do not request ELEVATOR_F_ZBD_SEQ_WRITE elevator feature
      null_blk: Introduce zone_append_max_sectors attribute
      null_blk: Introduce fua attribute
      nvmet: zns: Do not reference the gendisk conv_zones_bitmap
      block: Remove BLK_STS_ZONE_RESOURCE
      block: Simplify blk_revalidate_disk_zones() interface
      block: mq-deadline: Remove support for zone write locking
      block: Remove elevator required features
      block: Do not check zone type in blk_check_zone_append()
      block: Move zone related debugfs attribute to blk-zoned.c
      block: Replace zone_wlock debugfs entry with zone_wplugs entry
      block: Remove zone write locking
      block: Do not force select mq-deadline with CONFIG_BLK_DEV_ZONED
      block: Do not special-case plugging of zone write operations
      null_blk: Have all null_handle_xxx() return a blk_status_t
      null_blk: Do zone resource management only if necessary
      null_blk: Simplify null_zone_write()
      block: use a per disk workqueue for zone write plugging
      dm: Check that a zoned table leads to a valid mapped device
      block: Exclude conventional zones when faking max open limit
      block: Fix zone write plug initialization from blk_revalidate_zone_cb()
      block: Fix reference counting for zone write plugs in error state
      block: Hold a reference on zone write plugs to schedule submission
      block: Unhash a zone write plug only if needed
      block: Do not remove zone write plugs still in use
      block: Fix flush request sector restore
      block: Fix handling of non-empty flush write requests to zones
      block: Improve blk_zone_write_plug_bio_merged()
      block: Improve zone write request completion handling
      block: Simplify blk_zone_write_plug_bio_endio()
      block: Simplify zone write plug BIO abort
      block: Cleanup blk_revalidate_zone_cb()

Florian-Ewald Mueller (1):
      md: add check for sleepers in md_wakeup_thread()

INAGAKI Hiroshi (1):
      block: fix and simplify blkdevparts= cmdline parsing

Jens Axboe (2):
      Merge tag 'md-6.10-20240425' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md into for-6.10/block
      Merge tag 'md-6.10-20240502' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md into for-6.10/block

Jiapeng Chong (1):
      block/mq-deadline: Remove some unused functions

Johannes Thumshirn (1):
      block: check if zone_wplugs_hash exists in queue_zone_wplugs_show

John Garry (2):
      blk-throttle: Only use seq_printf() in tg_prfill_limit()
      block: Call blkdev_dio_unaligned() from blkdev_direct_IO()

Justin Stitt (1):
      block/ioctl: prefer different overflow check

Kefeng Wang (1):
      blk-cgroup: use group allocation/free of per-cpu counters API

Keith Busch (1):
      block: add a bio_await_chain helper

Li Nan (3):
      md: Fix overflow in is_mddev_idle
      md: don't account sync_io if iostats of the disk is disabled
      md: Revert "md: Fix overflow in is_mddev_idle"

Matthew Mirvish (1):
      bcache: fix variable length array abuse in btree_iter

Matthew Wilcox (Oracle) (1):
      brd: Remove use of page->index

Ming Lei (1):
      blk-mq: don't schedule block kworker on isolated CPUs

Yu Kuai (7):
      md/raid5: fix deadlock that raid5d() wait for itself to clear MD_SB_CHANGE_PENDING
      md: fix resync softlockup when bitmap size is less than array size
      block: add plug while submitting IO
      block: support to account io_ticks precisely
      block: fix that util can be greater than 100%
      blk-throttle: remove CONFIG_BLK_DEV_THROTTLING_LOW
      blk-throttle: delay initialization until configuration

Zhu Yanjun (2):
      null_blk: Fix missing mutex_destroy() at module removal
      null_blk: Fix the WARNING: modpost: missing MODULE_DESCRIPTION()

linke li (1):
      sbitmap: use READ_ONCE to access map->word

 Documentation/ABI/stable/sysfs-block       |   22 +-
 arch/loongarch/configs/loongson3_defconfig |    1 -
 block/Kconfig                              |   16 -
 block/Makefile                             |    1 -
 block/bio.c                                |   50 +-
 block/blk-cgroup-rwstat.c                  |   18 +-
 block/blk-cgroup.c                         |    9 +-
 block/blk-core.c                           |   26 +-
 block/blk-flush.c                          |    2 +
 block/blk-lib.c                            |   68 +-
 block/blk-merge.c                          |   25 +-
 block/blk-mq-debugfs-zoned.c               |   22 -
 block/blk-mq-debugfs.c                     |    3 +-
 block/blk-mq-debugfs.h                     |    6 +-
 block/blk-mq.c                             |  184 +--
 block/blk-mq.h                             |   31 -
 block/blk-settings.c                       |   46 +-
 block/blk-stat.c                           |    3 -
 block/blk-sysfs.c                          |   10 +-
 block/blk-throttle.c                       | 1019 ++---------------
 block/blk-throttle.h                       |   46 +-
 block/blk-zoned.c                          | 1690 ++++++++++++++++++++++++----
 block/blk.h                                |   97 +-
 block/elevator.c                           |   46 +-
 block/elevator.h                           |    1 -
 block/fops.c                               |   31 +-
 block/genhd.c                              |   32 +-
 block/ioctl.c                              |   42 +-
 block/mq-deadline.c                        |  204 +---
 block/partitions/cmdline.c                 |   49 +-
 block/partitions/core.c                    |    5 +-
 drivers/block/brd.c                        |   40 +-
 drivers/block/null_blk/main.c              |   43 +-
 drivers/block/null_blk/null_blk.h          |    2 +
 drivers/block/null_blk/zoned.c             |  358 +++---
 drivers/block/ublk_drv.c                   |    5 +-
 drivers/block/virtio_blk.c                 |    2 +-
 drivers/md/bcache/bset.c                   |   44 +-
 drivers/md/bcache/bset.h                   |   28 +-
 drivers/md/bcache/btree.c                  |   40 +-
 drivers/md/bcache/super.c                  |   15 +-
 drivers/md/bcache/sysfs.c                  |    2 +-
 drivers/md/bcache/writeback.c              |   10 +-
 drivers/md/dm-bio-prison-v2.c              |    3 +-
 drivers/md/dm-cache-target.c               |   12 +-
 drivers/md/dm-clone-target.c               |   14 +-
 drivers/md/dm-core.h                       |    2 +-
 drivers/md/dm-era-target.c                 |    3 +-
 drivers/md/dm-mpath.c                      |    3 +-
 drivers/md/dm-table.c                      |    3 +-
 drivers/md/dm-thin.c                       |   12 +-
 drivers/md/dm-vdo/data-vio.c               |    3 +-
 drivers/md/dm-vdo/flush.c                  |    3 +-
 drivers/md/dm-zone.c                       |  501 ++-------
 drivers/md/dm.c                            |   72 +-
 drivers/md/dm.h                            |    2 -
 drivers/md/md-bitmap.c                     |    6 +-
 drivers/md/md.c                            |    7 +-
 drivers/md/md.h                            |    3 +-
 drivers/md/raid5.c                         |   15 +-
 drivers/nvme/host/core.c                   |    2 +-
 drivers/nvme/target/zns.c                  |   10 +-
 drivers/scsi/scsi_lib.c                    |    1 -
 drivers/scsi/sd.c                          |    8 -
 drivers/scsi/sd.h                          |   19 -
 drivers/scsi/sd_zbc.c                      |  335 +-----
 fs/btrfs/raid56.c                          |    3 +-
 include/linux/bio.h                        |   11 +
 include/linux/blk-mq.h                     |   85 +-
 include/linux/blk_types.h                  |   30 +-
 include/linux/blkdev.h                     |  116 +-
 lib/sbitmap.c                              |    8 +-
 72 files changed, 2646 insertions(+), 3040 deletions(-)
 delete mode 100644 block/blk-mq-debugfs-zoned.c

-- 
Jens Axboe
commit 861f0633c90e404e71bd4a12f304a1c678d7b0fc
Merge: 5521ccb7c69f a3166c51702b
Author: Jens Axboe <axboe@xxxxxxxxx>
Date:   Sat May 11 08:09:01 2024 -0600

    Merge branch 'for-6.10/block' into test
    
    * for-6.10/block: (84 commits)
      blk-throttle: delay initialization until configuration
      blk-throttle: remove CONFIG_BLK_DEV_THROTTLING_LOW
      block: fix that util can be greater than 100%
      block: support to account io_ticks precisely
      block: add plug while submitting IO
      bcache: fix variable length array abuse in btree_iter
      bcache: Remove usage of the deprecated ida_simple_xx() API
      md: Revert "md: Fix overflow in is_mddev_idle"
      blk-lib: check for kill signal in ioctl BLKDISCARD
      block: add a bio_await_chain helper
      block: add a blk_alloc_discard_bio helper
      block: add a bio_chain_and_submit helper
      block: move discard checks into the ioctl handler
      block: remove the discard_granularity check in __blkdev_issue_discard
      block/ioctl: prefer different overflow check
      null_blk: Fix the WARNING: modpost: missing MODULE_DESCRIPTION()
      block: fix and simplify blkdevparts= cmdline parsing
      block: refine the EOF check in blkdev_iomap_begin
      block: add a partscan sysfs attribute for disks
      block: add a disk_has_partscan helper
      ...
    
    Signed-off-by: Jens Axboe <axboe@xxxxxxxxx>

diff --cc block/ioctl.c
index f505f9c341eb,d7a6c6931a1e..c7db3bd2d653
--- a/block/ioctl.c
+++ b/block/ioctl.c
@@@ -95,9 -95,12 +95,12 @@@ static int compat_blkpg_ioctl(struct bl
  static int blk_ioctl_discard(struct block_device *bdev, blk_mode_t mode,
  		unsigned long arg)
  {
- 	uint64_t range[2];
- 	uint64_t start, len, end;
+ 	unsigned int bs_mask = bdev_logical_block_size(bdev) - 1;
  	struct inode *inode = bdev->bd_inode;
 -	uint64_t range[2], start, len;
++	uint64_t range[2], start, len, end;
+ 	struct bio *prev = NULL, *bio;
+ 	sector_t sector, nr_sects;
+ 	struct blk_plug plug;
  	int err;
  
  	if (!(mode & BLK_OPEN_WRITE))
@@@ -112,13 -117,12 +117,13 @@@
  	start = range[0];
  	len = range[1];
  
- 	if (start & 511)
+ 	if (!len)
  		return -EINVAL;
- 	if (len & 511)
+ 	if ((start | len) & bs_mask)
  		return -EINVAL;
  
 -	if (start + len > bdev_nr_bytes(bdev))
 +	if (check_add_overflow(start, len, &end) ||
 +	    end > bdev_nr_bytes(bdev))
  		return -EINVAL;
  
  	filemap_invalidate_lock(inode->i_mapping);

[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux