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.