Pull block updates from Jens Axboe:
 - BFQ cleanups and fixes (Yu, Zhang, Yahu, Paolo)
 - blk-rq-qos completion fix (Tejun)
 - blk-cgroup merge fix (Tejun)
 - Add offline error return value to distinguish it from an IO error on
   the device (Song)
 - IO stats fixes (Zhang, Christoph)
 - blkcg refcount fixes (Ming, Yu)
 - Fix for indefinite dispatch loop softlockup (Shin'ichiro)
 - blk-mq hardware queue management improvements (Ming)
 - sbitmap dead code removal (Ming, John)
 - Plugging merge improvements (me)
 - Show blk-crypto capabilities in sysfs (Eric)
 - Multiple delayed queue run improvement (David)
 - Block throttling fixes (Ming)
 - Start deprecating auto module loading based on dev_t (Christoph)
 - bio allocation improvements (Christoph, Chaitanya)
 - Get rid of bio_devname (Christoph)
 - bio clone improvements (Christoph)
 - Block plugging improvements (Christoph)
 - Get rid of genhd.h header (Christoph)
 - Ensure drivers use appropriate flush helpers (Christoph)
 - Refcounting improvements (Christoph)
 - Queue initialization and teardown improvements (Ming, Christoph)
 - Misc fixes/improvements (Barry, Chaitanya, Colin, Dan, Jiapeng,
   Lukas, Nian, Yang, Eric, Chengming)
* tag 'for-5.18/block-2022-03-18' of git://git.kernel.dk/linux-block: (127 commits)
  block: cancel all throttled bios in del_gendisk()
  block: let blkcg_gq grab request queue's refcnt
  block: avoid use-after-free on throttle data
  block: limit request dispatch loop duration
  block/bfq-iosched: Fix spelling mistake "tenative" -> "tentative"
  sr: simplify the local variable initialization in sr_block_open()
  block: don't merge across cgroup boundaries if blkcg is enabled
  block: fix rq-qos breakage from skipping rq_qos_done_bio()
  block: flush plug based on hardware and software queue order
  block: ensure plug merging checks the correct queue at least once
  block: move rq_qos_exit() into disk_release()
  block: do more work in elevator_exit
  block: move blk_exit_queue into disk_release
  block: move q_usage_counter release into blk_queue_release
  block: don't remove hctx debugfs dir from blk_mq_exit_queue
  block: move blkcg initialization/destroy into disk allocation/release handler
  sr: implement ->free_disk to simplify refcounting
  sd: implement ->free_disk to simplify refcounting
  sd: delay calling free_opal_dev
  sd: call sd_zbc_release_disk before releasing the scsi_device reference
  ...
27 files changed:
  #include "blk.h"
  #include "blk-mq-sched.h"
  #include "blk-pm.h"
+ #include "blk-cgroup.h"
  #include "blk-throttle.h"
 +#include "blk-rq-qos.h"
  
  struct dentry *blk_debugfs_root;
  
 
        /* Process context for config space updates */
        struct work_struct config_work;
  
-       /*
-        * Tracks references from block_device_operations open/release and
-        * virtio_driver probe/remove so this object can be freed once no
-        * longer in use.
-        */
-       refcount_t refs;
 -      /* What host tells us, plus 2 for header & tailer. */
 -      unsigned int sg_elems;
--
        /* Ida index - used to track minor number allocations. */
        int index;