From: Keith Busch Date: Thu, 6 Aug 2015 18:13:50 +0000 (-0700) Subject: NVMe: Fix filesystem deadlock on removal X-Git-Tag: v4.1.12-92~311^2 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=52281e8d6cfb882fa2f9cb7c756186dc1d26b6a1;p=users%2Fjedix%2Flinux-maple.git 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 Conflicts: drivers/block/nvme-core.c Orabug: 21569452 Signed-off-by: Santosh Shilimkar --- diff --git a/drivers/block/nvme-core.c b/drivers/block/nvme-core.c index 6feae81bb360..244fda76b689 100644 --- a/drivers/block/nvme-core.c +++ b/drivers/block/nvme-core.c @@ -3222,8 +3222,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);