]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
Merge tag 'for-6.13/block-20241118' of git://git.kernel.dk/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 19 Nov 2024 00:50:08 +0000 (16:50 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 19 Nov 2024 00:50:08 +0000 (16:50 -0800)
Pull block updates from Jens Axboe:

 - NVMe updates via Keith:
      - Use uring_cmd helper (Pavel)
      - Host Memory Buffer allocation enhancements (Christoph)
      - Target persistent reservation support (Guixin)
      - Persistent reservation tracing (Guixen)
      - NVMe 2.1 specification support (Keith)
      - Rotational Meta Support (Matias, Wang, Keith)
      - Volatile cache detection enhancment (Guixen)

 - MD updates via Song:
      - Maintainers update
      - raid5 sync IO fix
      - Enhance handling of faulty and blocked devices
      - raid5-ppl atomic improvement
      - md-bitmap fix

 - Support for manually defining embedded partition tables

 - Zone append fixes and cleanups

 - Stop sending the queued requests in the plug list to the driver
   ->queue_rqs() handle in reverse order.

 - Zoned write plug cleanups

 - Cleanups disk stats tracking and add support for disk stats for
   passthrough IO

 - Add preparatory support for file system atomic writes

 - Add lockdep support for queue freezing. Already found a bunch of
   issues, and some fixes for that are in here. More will be coming.

 - Fix race between queue stopping/quiescing and IO queueing

 - ublk recovery improvements

 - Fix ublk mmap for 64k pages

 - Various fixes and cleanups

* tag 'for-6.13/block-20241118' of git://git.kernel.dk/linux: (118 commits)
  MAINTAINERS: Update git tree for mdraid subsystem
  block: make struct rq_list available for !CONFIG_BLOCK
  block/genhd: use seq_put_decimal_ull for diskstats decimal values
  block: don't reorder requests in blk_mq_add_to_batch
  block: don't reorder requests in blk_add_rq_to_plug
  block: add a rq_list type
  block: remove rq_list_move
  virtio_blk: reverse request order in virtio_queue_rqs
  nvme-pci: reverse request order in nvme_queue_rqs
  btrfs: validate queue limits
  block: export blk_validate_limits
  nvmet: add tracing of reservation commands
  nvme: parse reservation commands's action and rtype to string
  nvmet: report ns's vwc not present
  md/raid5: Increase r5conf.cache_name size
  block: remove the ioprio field from struct request
  block: remove the write_hint field from struct request
  nvme: check ns's volatile write cache not present
  nvme: add rotational support
  nvme: use command set independent id ns if available
  ...

1  2 
Documentation/ABI/stable/sysfs-block
MAINTAINERS
drivers/md/dm-cache-target.c
drivers/md/md.c
drivers/md/raid10.c
drivers/nvme/host/core.c
drivers/nvme/host/ioctl.c
drivers/scsi/sd_zbc.c
fs/btrfs/zoned.c
io_uring/rw.c
lib/iov_iter.c

Simple merge
diff --cc MAINTAINERS
Simple merge
Simple merge
diff --cc drivers/md/md.c
Simple merge
Simple merge
index 855b42c92284dfeb648fdf3643175c9b7ea27cca,7360e9c3acff014e9c24259f649084916575cf94..1a8d32a4a5c31b5ddef1ae38cb22f8eb803a2745
@@@ -4893,9 -4872,8 +4902,9 @@@ void nvme_unfreeze(struct nvme_ctrl *ct
        int srcu_idx;
  
        srcu_idx = srcu_read_lock(&ctrl->srcu);
 -      list_for_each_entry_rcu(ns, &ctrl->namespaces, list)
 +      list_for_each_entry_srcu(ns, &ctrl->namespaces, list,
 +                               srcu_read_lock_held(&ctrl->srcu))
-               blk_mq_unfreeze_queue(ns->queue);
+               blk_mq_unfreeze_queue_non_owner(ns->queue);
        srcu_read_unlock(&ctrl->srcu, srcu_idx);
        clear_bit(NVME_CTRL_FROZEN, &ctrl->flags);
  }
@@@ -4938,9 -4914,13 +4947,14 @@@ void nvme_start_freeze(struct nvme_ctr
  
        set_bit(NVME_CTRL_FROZEN, &ctrl->flags);
        srcu_idx = srcu_read_lock(&ctrl->srcu);
 -      list_for_each_entry_rcu(ns, &ctrl->namespaces, list)
 +      list_for_each_entry_srcu(ns, &ctrl->namespaces, list,
 +                               srcu_read_lock_held(&ctrl->srcu))
-               blk_freeze_queue_start(ns->queue);
+               /*
+                * Typical non_owner use case is from pci driver, in which
+                * start_freeze is called from timeout work function, but
+                * unfreeze is done in reset work context
+                */
+               blk_freeze_queue_start_non_owner(ns->queue);
        srcu_read_unlock(&ctrl->srcu, srcu_idx);
  }
  EXPORT_SYMBOL_GPL(nvme_start_freeze);
Simple merge
Simple merge
Simple merge
diff --cc io_uring/rw.c
Simple merge
diff --cc lib/iov_iter.c
Simple merge