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 this series cleans up a lot of code in nvme that is related to quiescing queues. Changes since v2: - check blk_queue_skip_tagset_quiesce in blk_mq_unquiesce_tagset - drop "nvme-pci: don't warn about the lack of I/O queues for admin controllers" - drop "nvme: don't call nvme_kill_queues from nvme_remove_namespaces" - drop "nvme-pci: mark the namespaces dead earlier in nvme_remove" - minor fixups for the above dropped patches - fix up a few commit messages 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