Kiyoshi Ueda e6ee8c0b76 dm: enable request based option
This patch enables request-based dm.

o Request-based dm and bio-based dm coexist, since there are
  some target drivers which are more fitting to bio-based dm.
  Also, there are other bio-based devices in the kernel
  (e.g. md, loop).
  Since bio-based device can't receive struct request,
  there are some limitations on device stacking between
  bio-based and request-based.

                     type of underlying device
                   bio-based      request-based
   ----------------------------------------------
    bio-based         OK                OK
    request-based     --                OK

  The device type is recognized by the queue flag in the kernel,
  so dm follows that.

o The type of a dm device is decided at the first table binding time.
  Once the type of a dm device is decided, the type can't be changed.

o Mempool allocations are deferred to at the table loading time, since
  mempools for request-based dm are different from those for bio-based
  dm and needed mempool type is fixed by the type of table.

o Currently, request-based dm supports only tables that have a single
  target.  To support multiple targets, we need to support request
  splitting or prevent bio/request from spanning multiple targets.
  The former needs lots of changes in the block layer, and the latter
  needs that all target drivers support merge() function.
  Both will take a time.

Signed-off-by: Kiyoshi Ueda <k-ueda@ct.jp.nec.com>
Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
2009-06-22 10:12:36 +01:00
..
2006-01-01 22:21:50 +01:00
2009-06-22 10:12:14 +01:00
2009-06-22 10:12:26 +01:00
2009-06-22 10:12:36 +01:00
2009-04-09 00:27:17 +01:00
2009-06-22 10:12:25 +01:00
2009-06-22 10:12:29 +01:00
2009-06-22 10:12:36 +01:00
2007-10-20 02:01:26 +01:00
2009-06-22 10:12:36 +01:00
2009-06-22 10:12:36 +01:00
2009-06-22 10:12:35 +01:00
2009-06-22 10:12:35 +01:00
2009-03-31 14:57:37 +11:00
2005-04-16 15:20:36 -07:00