Hi all, this series moves the SRCU struct used for quiescing to the tag_set as the SRCU critical sections for dispatch take about the same time on all queues anyway, and then adopts the series from Chao that provides tagset-wide quiesce to use that infrastructure. To do so it does a fair amount of cleanups in how nvme quiesces queues. Even with that nvme is still a bit of a mess in how it quiesces queues, so further work is probably needed later. Note: testing is a bit limited as I'm travelling. Before this proceeds it should get surprise removal testing for nvme-pci. Changes since v1: - a whole bunch of new nvme cleanups - use the notify version of set_capacity in blk_mark_disk_dead - improve the documentation for blk_mq_wait_quiesce_done - dynamically allocate the srcu_struct in struct blk_mq_tag_set - minor spelling fixes