1. 15 9月, 2016 3 次提交
  2. 03 8月, 2016 1 次提交
    • M
      dm rq: fix the starting and stopping of blk-mq queues · 7d9595d8
      Mike Snitzer 提交于
      Improve dm_stop_queue() to cancel any requeue_work.  Also, have
      dm_start_queue() and dm_stop_queue() clear/set the QUEUE_FLAG_STOPPED
      for the blk-mq request_queue.
      
      On suspend dm_stop_queue() handles stopping the blk-mq request_queue
      BUT: even though the hw_queues are marked BLK_MQ_S_STOPPED at that point
      there is still a race that is allowing block/blk-mq.c to call ->queue_rq
      against a hctx that it really shouldn't.  Add a check to
      dm_mq_queue_rq() that guards against this rarity (albeit _not_
      race-free).
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      Cc: stable@vger.kernel.org # must patch dm.c on < 4.8 kernels
      7d9595d8
  3. 19 7月, 2016 1 次提交
  4. 06 7月, 2016 1 次提交
  5. 11 6月, 2016 2 次提交
    • M
      dm mpath: add optional "queue_mode" feature · e83068a5
      Mike Snitzer 提交于
      Allow a user to specify an optional feature 'queue_mode <mode>' where
      <mode> may be "bio", "rq" or "mq" -- which corresponds to bio-based,
      request_fn rq-based, and blk-mq rq-based respectively.
      
      If the queue_mode feature isn't specified the default for the
      "multipath" target is still "rq" but if dm_mod.use_blk_mq is set to Y
      it'll default to mode "mq".
      
      This new queue_mode feature introduces the ability for each multipath
      device to have its own queue_mode (whereas before this feature all
      multipath devices effectively had to have the same queue_mode).
      
      This commit also goes a long way to eliminate the awkward (ab)use of
      DM_TYPE_*, the associated filter_md_type() and other relatively fragile
      and difficult to maintain code.
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      e83068a5
    • M
      dm: move request-based code out to dm-rq.[hc] · 4cc96131
      Mike Snitzer 提交于
      Add some seperation between bio-based and request-based DM core code.
      
      'struct mapped_device' and other DM core only structures and functions
      have been moved to dm-core.h and all relevant DM core .c files have been
      updated to include dm-core.h rather than dm.h
      
      DM targets should _never_ include dm-core.h!
      
      [block core merge conflict resolution from Stephen Rothwell]
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      Signed-off-by: NStephen Rothwell <sfr@canb.auug.org.au>
      4cc96131