[PATCH v2] nvme_fc: avoid double kfree(), don't call nvme_cleanup_cmd() in nvme_fc_unmap_data()
Ewan D. Milne
emilne at redhat.com
Thu Apr 6 09:47:56 PDT 2017
nvme_cleanup_cmd() is already called by callers of nvme_fc_unmap_data().
Don't call it twice to avoid double-free on completion of discard commands.
v2:
Move nvme_cleanup_cmd() call *after* nvme_fc_unmap_data() for consistency.
Signed-off-by: Ewan D. Milne <emilne at redhat.com>
---
drivers/nvme/host/fc.c | 4 +---
1 files changed, 1 insertions(+), 3 deletions(-)
diff --git a/drivers/nvme/host/fc.c b/drivers/nvme/host/fc.c
index fc42172..5ff8674 100644
--- a/drivers/nvme/host/fc.c
+++ b/drivers/nvme/host/fc.c
@@ -1700,8 +1700,6 @@ enum blk_eh_timer_return
((rq_data_dir(rq) == WRITE) ?
DMA_TO_DEVICE : DMA_FROM_DEVICE));
- nvme_cleanup_cmd(rq);
-
sg_free_table_chained(&freq->sg_table, true);
freq->sg_cnt = 0;
@@ -1929,8 +1927,8 @@ enum blk_eh_timer_return
state = atomic_xchg(&op->state, FCPOP_STATE_IDLE);
- nvme_cleanup_cmd(rq);
nvme_fc_unmap_data(ctrl, rq, op);
+ nvme_cleanup_cmd(rq);
nvme_complete_rq(rq);
nvme_fc_ctrl_put(ctrl);
--
1.7.1
More information about the Linux-nvme
mailing list