[dm-devel] [PATCH 4/7] dm: open-code dm_kill_unmapped_request()

Hannes Reinecke hare at suse.de
Thu Jun 5 13:11:04 UTC 2014


Signed-off-by: Hannes Reinecke <hare at suse.de>
---
 drivers/md/dm.c               | 24 +++++-------------------
 include/linux/device-mapper.h |  1 -
 2 files changed, 5 insertions(+), 20 deletions(-)

diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index f55ca0c..5109c76 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -1015,22 +1015,6 @@ static void dm_complete_request(struct request *clone, int error)
 }
 
 /*
- * Complete the not-mapped clone and the original request with the error status
- * through softirq context.
- * Target's rq_end_io() function isn't called.
- * This may be used when the target's map_rq() function fails.
- */
-void dm_kill_unmapped_request(struct request *clone, int error)
-{
-	struct dm_rq_target_io *tio = clone->end_io_data;
-	struct request *rq = tio->orig;
-
-	rq->cmd_flags |= REQ_FAILED;
-	dm_complete_request(clone, error);
-}
-EXPORT_SYMBOL_GPL(dm_kill_unmapped_request);
-
-/*
  * Called with the queue lock held
  */
 static void end_clone_request(struct request *clone, int error)
@@ -1631,7 +1615,8 @@ static int map_request(struct dm_target *ti, struct request *clone,
 		}
 
 		/* The target wants to complete the I/O */
-		dm_kill_unmapped_request(clone, r);
+		rq->cmd_flags |= REQ_FAILED;
+		dm_complete_request(clone, r);
 		break;
 	}
 
@@ -1691,11 +1676,12 @@ static void dm_request_fn(struct request_queue *q)
 		if (!dm_target_is_valid(ti)) {
 			/*
 			 * Must perform setup, that dm_done() requires,
-			 * before calling dm_kill_unmapped_request
+			 * before calling dm_complete_request
 			 */
 			DMERR_LIMIT("request attempted access beyond the end of device");
 			clone = dm_start_request(md, rq);
-			dm_kill_unmapped_request(clone, -EIO);
+			rq->cmd_flags |= REQ_FAILED;
+			dm_complete_request(clone, -EIO);
 			continue;
 		}
 
diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h
index 63da56e..3ad5db8 100644
--- a/include/linux/device-mapper.h
+++ b/include/linux/device-mapper.h
@@ -604,7 +604,6 @@ static inline unsigned long to_bytes(sector_t n)
  *---------------------------------------------------------------*/
 void dm_dispatch_request(struct request *rq);
 void dm_requeue_unmapped_request(struct request *rq);
-void dm_kill_unmapped_request(struct request *rq, int error);
 int dm_underlying_device_busy(struct request_queue *q);
 
 #endif	/* _LINUX_DEVICE_MAPPER_H */
-- 
1.7.12.4




More information about the dm-devel mailing list