From 98450d5a98d266ae41570799a612ae187def4883 Mon Sep 17 00:00:00 2001 From: Keith Busch Date: Thu, 18 Jun 2015 13:36:40 -0600 Subject: [PATCH] NVMe: Fix filesystem deadlock on removal Move gendisk deletion before controller shutdown so filesystem may sync dirty pages. Before, this would deadlock trying to allocate requests on frozen queues that are about to be deleted. Signed-off-by: Keith Busch Signed-off-by: Jens Axboe --- drivers/block/nvme-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/block/nvme-core.c b/drivers/block/nvme-core.c index 22761a6c34aa6..75a914914c412 100644 --- a/drivers/block/nvme-core.c +++ b/drivers/block/nvme-core.c @@ -3124,8 +3124,8 @@ static void nvme_remove(struct pci_dev *pdev) flush_work(&dev->reset_work); flush_work(&dev->scan_work); device_remove_file(dev->device, &dev_attr_reset_controller); - nvme_dev_shutdown(dev); nvme_dev_remove(dev); + nvme_dev_shutdown(dev); nvme_dev_remove_admin(dev); device_destroy(nvme_class, MKDEV(nvme_char_major, dev->instance)); nvme_free_queues(dev, 0); -- 2.39.5