On Mon, May 21, 2018 at 08:22:19AM -0600, Keith Busch wrote: > On Sat, May 19, 2018 at 07:03:58AM +0800, Ming Lei wrote: > > On Fri, May 18, 2018 at 10:38:20AM -0600, Keith Busch wrote: > > > + > > > + if (unfreeze) > > > + nvme_wait_freeze(&dev->ctrl); > > > + > > > > timeout may comes just before&during blk_mq_update_nr_hw_queues() or > > the above nvme_wait_freeze(), then both two may hang forever. > > Why would it hang forever? The scan_work doesn't stop a timeout from > triggering a reset to reclaim requests necessary to complete a freeze. nvme_dev_disable() will quiesce queues, then nvme_wait_freeze() or blk_mq_update_nr_hw_queues() may hang forever. Thanks, Ming