aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/lightnvm/core.c
diff options
context:
space:
mode:
authorJavier González <javier@javigon.com>2015-11-16 09:34:47 -0500
committerJens Axboe <axboe@fb.com>2015-11-16 17:20:41 -0500
commitd09f9581b235a92abbe372531660b468fadabc17 (patch)
tree14cc6c36c0b48fd1db98ed0eab17f8e853c90ea9 /drivers/lightnvm/core.c
parentdad1b00977f9dc8120b48f9711deb4aa6462a3a6 (diff)
lightnvm: cleanup queue before target removal
This prevents outstanding IOs to be sent for completion to target after the target has been removed. The flow is now: stop new IOs > cleanup queue > remove target. Signed-off-by: Javier Gonzalez <javier@cnexlabs.com> Signed-off-by: Matias Bjørling <m@bjorling.me> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'drivers/lightnvm/core.c')
-rw-r--r--drivers/lightnvm/core.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c
index 790b1d7a8d43..8a556f3f36bb 100644
--- a/drivers/lightnvm/core.c
+++ b/drivers/lightnvm/core.c
@@ -460,11 +460,11 @@ static void nvm_remove_target(struct nvm_target *t)
460 lockdep_assert_held(&nvm_lock); 460 lockdep_assert_held(&nvm_lock);
461 461
462 del_gendisk(tdisk); 462 del_gendisk(tdisk);
463 blk_cleanup_queue(q);
464
463 if (tt->exit) 465 if (tt->exit)
464 tt->exit(tdisk->private_data); 466 tt->exit(tdisk->private_data);
465 467
466 blk_cleanup_queue(q);
467
468 put_disk(tdisk); 468 put_disk(tdisk);
469 469
470 list_del(&t->list); 470 list_del(&t->list);