Commit 1959d21232931dfa686769a21161413f10d6652f
1 parent
40359ccb83
Exists in
master
and in
4 other branches
[PATCH] Only the first two bits in bio->bi_rw and rq->flags match
Not three, as assumed. This causes the barrier bit to be needlessly set for some IO. Signed-off-by: Jens Axboe <axboe@suse.de>
Showing 2 changed files with 3 additions and 3 deletions Side-by-side Diff
block/ll_rw_blk.c
| ... | ... | @@ -3491,8 +3491,8 @@ |
| 3491 | 3491 | |
| 3492 | 3492 | void blk_rq_bio_prep(request_queue_t *q, struct request *rq, struct bio *bio) |
| 3493 | 3493 | { |
| 3494 | - /* first three bits are identical in rq->flags and bio->bi_rw */ | |
| 3495 | - rq->flags |= (bio->bi_rw & 7); | |
| 3494 | + /* first two bits are identical in rq->flags and bio->bi_rw */ | |
| 3495 | + rq->flags |= (bio->bi_rw & 3); | |
| 3496 | 3496 | |
| 3497 | 3497 | rq->nr_phys_segments = bio_phys_segments(q, bio); |
| 3498 | 3498 | rq->nr_hw_segments = bio_hw_segments(q, bio); |