block: set up rq->rq_disk properly for flush requests
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Fri, 9 Jul 2010 00:38:25 +0000 (09:38 +0900)
committerJens Axboe <jaxboe@fusionio.com>
Sat, 7 Aug 2010 16:52:41 +0000 (18:52 +0200)
q->bar_rq.rq_disk is NULL. Use the rq_disk of the original request
instead.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
block/blk-barrier.c

index d95a1440e29dab5a84fd9f3a1cf90e341c55871f..f0faefca032ff59d739460be5e7898a61d33cc48 100644 (file)
@@ -136,7 +136,7 @@ static void queue_flush(struct request_queue *q, unsigned which)
        blk_rq_init(q, rq);
        rq->cmd_type = REQ_TYPE_FS;
        rq->cmd_flags = REQ_HARDBARRIER | REQ_FLUSH;
-       rq->rq_disk = q->bar_rq.rq_disk;
+       rq->rq_disk = q->orig_bar_rq->rq_disk;
        rq->end_io = end_io;
 
        elv_insert(q, rq, ELEVATOR_INSERT_FRONT);