diff options
author | Jens Axboe <jens.axboe@oracle.com> | 2009-01-06 11:16:05 +0300 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2009-01-30 14:34:37 +0300 |
commit | 213d9417fec62ef4c3675621b9364a667954d4dd (patch) | |
tree | d115a92085288d2d9c2ba0e8cbc573cccdcd8e46 /block | |
parent | 1308835ffffe6d61ad1f48c5c381c9cc47f683ec (diff) | |
download | linux-213d9417fec62ef4c3675621b9364a667954d4dd.tar.xz |
block: seperate bio/request unplug and sync bits
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'block')
-rw-r--r-- | block/blk-core.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/block/blk-core.c b/block/blk-core.c index a824e49c0d0a..9e2e86fb78b8 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -1125,6 +1125,8 @@ void init_request_from_bio(struct request *req, struct bio *bio) if (bio_sync(bio)) req->cmd_flags |= REQ_RW_SYNC; + if (bio_unplug(bio)) + req->cmd_flags |= REQ_UNPLUG; if (bio_rw_meta(bio)) req->cmd_flags |= REQ_RW_META; @@ -1141,6 +1143,7 @@ static int __make_request(struct request_queue *q, struct bio *bio) int el_ret, nr_sectors; const unsigned short prio = bio_prio(bio); const int sync = bio_sync(bio); + const int unplug = bio_unplug(bio); int rw_flags; nr_sectors = bio_sectors(bio); @@ -1244,7 +1247,7 @@ get_rq: blk_plug_device(q); add_request(q, req); out: - if (sync || blk_queue_nonrot(q)) + if (unplug || blk_queue_nonrot(q)) __generic_unplug_device(q); spin_unlock_irq(q->queue_lock); return 0; |