diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-12 19:36:31 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-12 19:36:31 -0500 |
| commit | 802ea9d8645d33d24b7b4cd4537c14f3e698bde0 (patch) | |
| tree | 9a51a21025fa9a38263aa44883ea2b6af823ea05 /include/linux | |
| parent | 8494bcf5b7c4b2416687e233dd34d4c6b6fe5653 (diff) | |
| parent | a4afe76b2b922e6197944d7be0be7a18b53175ae (diff) | |
Merge tag 'dm-3.20-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
Pull device mapper changes from Mike Snitzer:
- The most significant change this cycle is request-based DM now
supports stacking ontop of blk-mq devices. This blk-mq support
changes the model request-based DM uses for cloning a request to
relying on calling blk_get_request() directly from the underlying
blk-mq device.
An early consumer of this code is Intel's emerging NVMe hardware;
thanks to Keith Busch for working on, and pushing for, these changes.
- A few other small fixes and cleanups across other DM targets.
* tag 'dm-3.20-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
dm: inherit QUEUE_FLAG_SG_GAPS flags from underlying queues
dm snapshot: remove unnecessary NULL checks before vfree() calls
dm mpath: simplify failure path of dm_multipath_init()
dm thin metadata: remove unused dm_pool_get_data_block_size()
dm ioctl: fix stale comment above dm_get_inactive_table()
dm crypt: update url in CONFIG_DM_CRYPT help text
dm bufio: fix time comparison to use time_after_eq()
dm: use time_in_range() and time_after()
dm raid: fix a couple integer overflows
dm table: train hybrid target type detection to select blk-mq if appropriate
dm: allocate requests in target when stacking on blk-mq devices
dm: prepare for allocating blk-mq clone requests in target
dm: submit stacked requests in irq enabled context
dm: split request structure out from dm_rq_target_io structure
dm: remove exports for request-based interfaces without external callers
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/device-mapper.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h index ca6d2acc5eb7..2646aed1d3fe 100644 --- a/include/linux/device-mapper.h +++ b/include/linux/device-mapper.h | |||
| @@ -48,6 +48,11 @@ typedef void (*dm_dtr_fn) (struct dm_target *ti); | |||
| 48 | typedef int (*dm_map_fn) (struct dm_target *ti, struct bio *bio); | 48 | typedef int (*dm_map_fn) (struct dm_target *ti, struct bio *bio); |
| 49 | typedef int (*dm_map_request_fn) (struct dm_target *ti, struct request *clone, | 49 | typedef int (*dm_map_request_fn) (struct dm_target *ti, struct request *clone, |
| 50 | union map_info *map_context); | 50 | union map_info *map_context); |
| 51 | typedef int (*dm_clone_and_map_request_fn) (struct dm_target *ti, | ||
| 52 | struct request *rq, | ||
| 53 | union map_info *map_context, | ||
| 54 | struct request **clone); | ||
| 55 | typedef void (*dm_release_clone_request_fn) (struct request *clone); | ||
| 51 | 56 | ||
| 52 | /* | 57 | /* |
| 53 | * Returns: | 58 | * Returns: |
| @@ -143,6 +148,8 @@ struct target_type { | |||
| 143 | dm_dtr_fn dtr; | 148 | dm_dtr_fn dtr; |
| 144 | dm_map_fn map; | 149 | dm_map_fn map; |
| 145 | dm_map_request_fn map_rq; | 150 | dm_map_request_fn map_rq; |
| 151 | dm_clone_and_map_request_fn clone_and_map_rq; | ||
| 152 | dm_release_clone_request_fn release_clone_rq; | ||
| 146 | dm_endio_fn end_io; | 153 | dm_endio_fn end_io; |
| 147 | dm_request_endio_fn rq_end_io; | 154 | dm_request_endio_fn rq_end_io; |
| 148 | dm_presuspend_fn presuspend; | 155 | dm_presuspend_fn presuspend; |
| @@ -600,9 +607,6 @@ static inline unsigned long to_bytes(sector_t n) | |||
| 600 | /*----------------------------------------------------------------- | 607 | /*----------------------------------------------------------------- |
| 601 | * Helper for block layer and dm core operations | 608 | * Helper for block layer and dm core operations |
| 602 | *---------------------------------------------------------------*/ | 609 | *---------------------------------------------------------------*/ |
| 603 | void dm_dispatch_request(struct request *rq); | ||
| 604 | void dm_requeue_unmapped_request(struct request *rq); | ||
| 605 | void dm_kill_unmapped_request(struct request *rq, int error); | ||
| 606 | int dm_underlying_device_busy(struct request_queue *q); | 610 | int dm_underlying_device_busy(struct request_queue *q); |
| 607 | 611 | ||
| 608 | #endif /* _LINUX_DEVICE_MAPPER_H */ | 612 | #endif /* _LINUX_DEVICE_MAPPER_H */ |
