]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
NVMe: Fix filesystem deadlock on removal
authorKeith Busch <keith.busch@intel.com>
Thu, 6 Aug 2015 18:13:50 +0000 (11:13 -0700)
committerSantosh Shilimkar <santosh.shilimkar@oracle.com>
Fri, 7 Aug 2015 18:21:07 +0000 (11:21 -0700)
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 <keith.busch@intel.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
Conflicts:

drivers/block/nvme-core.c

Orabug: 21569452
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
drivers/block/nvme-core.c

index 6feae81bb3607b2c1b4b639ebb77ba559ca6a0d1..244fda76b6891b25d11201688844fb6a862b17f0 100644 (file)
@@ -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);