X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=block%2Fblk-flush.c;h=db8f1b5078570fe98afb8dd748636060511ba683;hb=1fa86dcfea3142522e8fd5f85fbbf79b84063cae;hp=491eb30a242db435b55a7ba962e4acce5af81a15;hpb=47f0ac2b0a8c7f26b513a2a18045219b030aedf1;p=~andy%2Flinux diff --git a/block/blk-flush.c b/block/blk-flush.c index 491eb30a242..db8f1b50785 100644 --- a/block/blk-flush.c +++ b/block/blk-flush.c @@ -320,7 +320,7 @@ void blk_insert_flush(struct request *rq) return; } - BUG_ON(!rq->bio || rq->bio != rq->biotail); + BUG_ON(rq->bio != rq->biotail); /*assumes zero or single bio rq */ /* * If there's data but flush is not necessary, the request can be @@ -330,7 +330,6 @@ void blk_insert_flush(struct request *rq) if ((policy & REQ_FSEQ_DATA) && !(policy & (REQ_FSEQ_PREFLUSH | REQ_FSEQ_POSTFLUSH))) { list_add_tail(&rq->queuelist, &q->queue_head); - blk_run_queue_async(q); return; } @@ -437,7 +436,7 @@ int blkdev_issue_flush(struct block_device *bdev, gfp_t gfp_mask, bio_get(bio); submit_bio(WRITE_FLUSH, bio); - wait_for_completion(&wait); + wait_for_completion_io(&wait); /* * The driver must store the error location in ->bi_sector, if