Signed-off-by: Hannes Reinecke <hare@xxxxxxx> --- 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 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel