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>
This commit is contained in:
Родитель
8749534fe6
Коммит
b6a903151d
|
@ -25,12 +25,6 @@
|
|||
int blk_queue_ordered(struct request_queue *q, unsigned ordered,
|
||||
prepare_flush_fn *prepare_flush_fn)
|
||||
{
|
||||
if (!prepare_flush_fn && (ordered & (QUEUE_ORDERED_DO_PREFLUSH |
|
||||
QUEUE_ORDERED_DO_POSTFLUSH))) {
|
||||
printk(KERN_ERR "%s: prepare_flush_fn required\n", __func__);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (ordered != QUEUE_ORDERED_NONE &&
|
||||
ordered != QUEUE_ORDERED_DRAIN &&
|
||||
ordered != QUEUE_ORDERED_DRAIN_FLUSH &&
|
||||
|
@ -146,7 +140,8 @@ static void queue_flush(struct request_queue *q, unsigned which)
|
|||
rq->cmd_flags = REQ_HARDBARRIER | REQ_FLUSH;
|
||||
rq->rq_disk = q->bar_rq.rq_disk;
|
||||
rq->end_io = end_io;
|
||||
q->prepare_flush_fn(q, rq);
|
||||
if (q->prepare_flush_fn)
|
||||
q->prepare_flush_fn(q, rq);
|
||||
|
||||
elv_insert(q, rq, ELEVATOR_INSERT_FRONT);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче