Files
kernel_arpi/include/uapi/linux
Mike Snitzer e5863d9ad7 dm: allocate requests in target when stacking on blk-mq devices
For blk-mq request-based DM the responsibility of allocating a cloned
request is transfered from DM core to the target type.  Doing so
enables the cloned request to be allocated from the appropriate
blk-mq request_queue's pool (only the DM target, e.g. multipath, can
know which block device to send a given cloned request to).

Care was taken to preserve compatibility with old-style block request
completion that requires request-based DM _not_ acquire the clone
request's queue lock in the completion path.  As such, there are now 2
different request-based DM target_type interfaces:
1) the original .map_rq() interface will continue to be used for
   non-blk-mq devices -- the preallocated clone request is passed in
   from DM core.
2) a new .clone_and_map_rq() and .release_clone_rq() will be used for
   blk-mq devices -- blk_get_request() and blk_put_request() are used
   respectively from these hooks.

dm_table_set_type() was updated to detect if the request-based target is
being stacked on blk-mq devices, if so DM_TYPE_MQ_REQUEST_BASED is set.
DM core disallows switching the DM table's type after it is set.  This
means that there is no mixing of non-blk-mq and blk-mq devices within
the same request-based DM table.

[This patch was started by Keith and later heavily modified by Mike]

Tested-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2015-02-09 13:06:47 -05:00
..
2014-10-20 10:30:15 +08:00
2014-09-23 23:15:46 -07:00
2014-11-24 17:31:46 -05:00
2014-10-14 13:08:29 +11:00
2014-12-09 13:34:10 -05:00
2014-07-01 10:48:05 -06:00
2014-11-19 14:48:02 -06:00
2014-12-08 12:55:57 +08:00
2014-08-08 15:57:31 -07:00
2014-10-24 00:14:37 +02:00
2014-05-14 10:04:34 +01:00
2014-12-16 11:19:42 -05:00
2014-12-02 13:52:53 -07:00
2014-11-21 18:07:33 +01:00
2014-08-08 15:57:31 -07:00
2014-12-13 12:42:52 -08:00
2014-11-04 13:17:10 -07:00
2014-12-10 17:41:10 -08:00
2014-12-09 14:10:41 +08:00
2014-04-26 12:13:24 -04:00
2014-12-09 12:05:26 +02:00
2014-12-09 12:05:26 +02:00
2014-12-09 12:05:24 +02:00
2014-12-09 12:06:31 +02:00
2014-12-09 12:05:24 +02:00