]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - include/linux/device-mapper.h
dm: allocate requests in target when stacking on blk-mq devices
[karo-tx-linux.git] / include / linux / device-mapper.h
index ca6d2acc5eb76f75781fb77dd12eb671642c8d36..2646aed1d3fedad16a773eaa366edad3ab44bad5 100644 (file)
@@ -48,6 +48,11 @@ typedef void (*dm_dtr_fn) (struct dm_target *ti);
 typedef int (*dm_map_fn) (struct dm_target *ti, struct bio *bio);
 typedef int (*dm_map_request_fn) (struct dm_target *ti, struct request *clone,
                                  union map_info *map_context);
+typedef int (*dm_clone_and_map_request_fn) (struct dm_target *ti,
+                                           struct request *rq,
+                                           union map_info *map_context,
+                                           struct request **clone);
+typedef void (*dm_release_clone_request_fn) (struct request *clone);
 
 /*
  * Returns:
@@ -143,6 +148,8 @@ struct target_type {
        dm_dtr_fn dtr;
        dm_map_fn map;
        dm_map_request_fn map_rq;
+       dm_clone_and_map_request_fn clone_and_map_rq;
+       dm_release_clone_request_fn release_clone_rq;
        dm_endio_fn end_io;
        dm_request_endio_fn rq_end_io;
        dm_presuspend_fn presuspend;
@@ -600,9 +607,6 @@ static inline unsigned long to_bytes(sector_t n)
 /*-----------------------------------------------------------------
  * Helper for block layer and dm core operations
  *---------------------------------------------------------------*/
-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 */