aboutsummaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2010-07-03 04:45:33 -0400
committerJens Axboe <jaxboe@fusionio.com>2010-08-07 12:23:56 -0400
commitb6a903151d05e3912ab66b186f74c61851efb88c (patch)
treedbf0f8d2da9aba48cac375304a9842e0166628c8 /block
parent8749534fe6826596b71bc409c872b047a8e2755b (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.c9
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 @@
25int blk_queue_ordered(struct request_queue *q, unsigned ordered, 25int 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}