srcu_idx = srcu_read_lock(&ctrl->srcu);
        list_for_each_entry_rcu(ns, &ctrl->namespaces, list)
-               blk_mq_unfreeze_queue(ns->queue);
+               blk_mq_unfreeze_queue_non_owner(ns->queue);
        srcu_read_unlock(&ctrl->srcu, srcu_idx);
        clear_bit(NVME_CTRL_FROZEN, &ctrl->flags);
 }
        set_bit(NVME_CTRL_FROZEN, &ctrl->flags);
        srcu_idx = srcu_read_lock(&ctrl->srcu);
        list_for_each_entry_rcu(ns, &ctrl->namespaces, list)
-               blk_freeze_queue_start(ns->queue);
+               /*
+                * Typical non_owner use case is from pci driver, in which
+                * start_freeze is called from timeout work function, but
+                * unfreeze is done in reset work context
+                */
+               blk_freeze_queue_start_non_owner(ns->queue);
        srcu_read_unlock(&ctrl->srcu, srcu_idx);
 }
 EXPORT_SYMBOL_GPL(nvme_start_freeze);