[dm-devel] [PATCH 5/7] dm: move free_rq_clone() out of dm_unprep_request()
Hannes Reinecke
hare at suse.de
Thu Jun 5 13:11:05 UTC 2014
Signed-off-by: Hannes Reinecke <hare at suse.de>
---
drivers/md/dm.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 5109c76..b2240f7 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -902,12 +902,8 @@ static void dm_end_request(struct request *clone, int error)
static void dm_unprep_request(struct request *rq)
{
- struct request *clone = rq->special;
-
rq->special = NULL;
rq->cmd_flags &= ~REQ_DONTPREP;
-
- free_rq_clone(clone);
}
/*
@@ -977,6 +973,7 @@ static void dm_done(struct request *clone, struct dm_rq_target_io *tio,
rq_completed(md, rw, true);
} else if (r == DM_ENDIO_REQUEUE) {
/* The target wants to requeue the I/O */
+ free_rq_clone(clone);
dm_requeue_unmapped_request(rq);
rq_completed(md, rw, false);
} else {
@@ -1604,6 +1601,7 @@ static int map_request(struct dm_target *ti, struct request *clone,
break;
case DM_MAPIO_REQUEUE:
/* The target wants to requeue the I/O */
+ free_rq_clone(clone);
dm_requeue_unmapped_request(rq);
rq_completed(md, rw, false);
requeued = 1;
--
1.7.12.4
More information about the dm-devel
mailing list