diff options
author | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2010-07-03 04:45:33 -0400 |
---|---|---|
committer | Jens Axboe <jaxboe@fusionio.com> | 2010-08-07 12:23:56 -0400 |
commit | b6a903151d05e3912ab66b186f74c61851efb88c (patch) | |
tree | dbf0f8d2da9aba48cac375304a9842e0166628c8 /block | |
parent | 8749534fe6826596b71bc409c872b047a8e2755b (diff) |
block: permit PREFLUSH and POSTFLUSH without prepare_flush_fn
This is preparation for removing q->prepare_flush_fn.
Temporarily, blk_queue_ordered() permits QUEUE_ORDERED_DO_PREFLUSH and
QUEUE_ORDERED_DO_POSTFLUSH without prepare_flush_fn.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Diffstat (limited to 'block')
-rw-r--r-- | block/blk-barrier.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/block/blk-barrier.c b/block/blk-barrier.c index a3482425c507..7ce0a32a21fd 100644 --- a/block/blk-barrier.c +++ b/block/blk-barrier.c | |||
@@ -25,12 +25,6 @@ | |||
25 | int blk_queue_ordered(struct request_queue *q, unsigned ordered, | 25 | int blk_queue_ordered(struct request_queue *q, unsigned ordered, |
26 | prepare_flush_fn *prepare_flush_fn) | 26 | prepare_flush_fn *prepare_flush_fn) |
27 | { | 27 | { |
28 | if (!prepare_flush_fn && (ordered & (QUEUE_ORDERED_DO_PREFLUSH | | ||
29 | QUEUE_ORDERED_DO_POSTFLUSH))) { | ||
30 | printk(KERN_ERR "%s: prepare_flush_fn required\n", __func__); | ||
31 | return -EINVAL; | ||
32 | } | ||
33 | |||
34 | if (ordered != QUEUE_ORDERED_NONE && | 28 | if (ordered != QUEUE_ORDERED_NONE && |
35 | ordered != QUEUE_ORDERED_DRAIN && | 29 | ordered != QUEUE_ORDERED_DRAIN && |
36 | ordered != QUEUE_ORDERED_DRAIN_FLUSH && | 30 | ordered != QUEUE_ORDERED_DRAIN_FLUSH && |
@@ -146,7 +140,8 @@ static void queue_flush(struct request_queue *q, unsigned which) | |||
146 | rq->cmd_flags = REQ_HARDBARRIER | REQ_FLUSH; | 140 | rq->cmd_flags = REQ_HARDBARRIER | REQ_FLUSH; |
147 | rq->rq_disk = q->bar_rq.rq_disk; | 141 | rq->rq_disk = q->bar_rq.rq_disk; |
148 | rq->end_io = end_io; | 142 | rq->end_io = end_io; |
149 | q->prepare_flush_fn(q, rq); | 143 | if (q->prepare_flush_fn) |
144 | q->prepare_flush_fn(q, rq); | ||
150 | 145 | ||
151 | elv_insert(q, rq, ELEVATOR_INSERT_FRONT); | 146 | elv_insert(q, rq, ELEVATOR_INSERT_FRONT); |
152 | } | 147 | } |