projects
/
GitHub
/
LineageOS
/
android_kernel_samsung_universal7580.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
859361a
)
NVMe: End queued bio requests when freeing queue
author
Keith Busch
<keith.busch@intel.com>
Mon, 20 Aug 2012 20:57:49 +0000
(14:57 -0600)
committer
Matthew Wilcox
<matthew.r.wilcox@intel.com>
Tue, 13 Nov 2012 14:13:49 +0000
(09:13 -0500)
If the queue has bios queued on it when it is freed, bio_endio() must be
called for them first.
Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
drivers/block/nvme.c
patch
|
blob
|
blame
|
history
diff --git
a/drivers/block/nvme.c
b/drivers/block/nvme.c
index 954a61018dc23bbddf7b906e18e87a036d3a1f3f..af88635e44e4e90a0f7a7e128c7764955945a134 100644
(file)
--- a/
drivers/block/nvme.c
+++ b/
drivers/block/nvme.c
@@
-909,6
+909,10
@@
static void nvme_free_queue(struct nvme_dev *dev, int qid)
spin_lock_irq(&nvmeq->q_lock);
nvme_cancel_ios(nvmeq, false);
+ while (bio_list_peek(&nvmeq->sq_cong)) {
+ struct bio *bio = bio_list_pop(&nvmeq->sq_cong);
+ bio_endio(bio, -EIO);
+ }
spin_unlock_irq(&nvmeq->q_lock);
irq_set_affinity_hint(vector, NULL);