nvme: delete dev from dev_list in nvme_reset
authorChristoph Hellwig <hch@lst.de>
Fri, 2 Oct 2015 16:48:36 +0000 (18:48 +0200)
committerJens Axboe <axboe@fb.com>
Fri, 9 Oct 2015 16:40:36 +0000 (10:40 -0600)
Device resets need to delete the device from the device list before
kicking of the reset an re-probe, otherwise we get the device added
to the list twice.  nvme_reset is the only side missing this deletion
at the moment, and this patch adds it.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
drivers/block/nvme-core.c

index bf35846558c8e349e8c7bc72089c08a0ed74cf23..be35b1d1885480c7910a839edaf923a12c1f5aa7 100644 (file)
@@ -3089,6 +3089,7 @@ static int nvme_reset(struct nvme_dev *dev)
 
        spin_lock(&dev_list_lock);
        if (!work_pending(&dev->reset_work)) {
+               list_del_init(&dev->node);
                queue_work(nvme_workq, &dev->reset_work);
                ret = 0;
        }