|
@@ -1455,20 +1455,9 @@ static int dm_request(struct request_queue *q, struct bio *bio)
|
|
|
return _dm_request(q, bio);
|
|
|
}
|
|
|
|
|
|
-/*
|
|
|
- * Mark this request as flush request, so that dm_request_fn() can
|
|
|
- * recognize.
|
|
|
- */
|
|
|
-static void dm_rq_prepare_flush(struct request_queue *q, struct request *rq)
|
|
|
-{
|
|
|
- rq->cmd_type = REQ_TYPE_LINUX_BLOCK;
|
|
|
- rq->cmd[0] = REQ_LB_OP_FLUSH;
|
|
|
-}
|
|
|
-
|
|
|
static bool dm_rq_is_flush_request(struct request *rq)
|
|
|
{
|
|
|
- if (rq->cmd_type == REQ_TYPE_LINUX_BLOCK &&
|
|
|
- rq->cmd[0] == REQ_LB_OP_FLUSH)
|
|
|
+ if (rq->cmd_flags & REQ_FLUSH)
|
|
|
return true;
|
|
|
else
|
|
|
return false;
|
|
@@ -1912,8 +1901,7 @@ static struct mapped_device *alloc_dev(int minor)
|
|
|
blk_queue_softirq_done(md->queue, dm_softirq_done);
|
|
|
blk_queue_prep_rq(md->queue, dm_prep_fn);
|
|
|
blk_queue_lld_busy(md->queue, dm_lld_busy);
|
|
|
- blk_queue_ordered(md->queue, QUEUE_ORDERED_DRAIN_FLUSH,
|
|
|
- dm_rq_prepare_flush);
|
|
|
+ blk_queue_ordered(md->queue, QUEUE_ORDERED_DRAIN_FLUSH, NULL);
|
|
|
|
|
|
md->disk = alloc_disk(1);
|
|
|
if (!md->disk)
|