Skip to content

Commit

Permalink
[PATCH] Only the first two bits in bio->bi_rw and rq->flags match
Browse files Browse the repository at this point in the history
Not three, as assumed. This causes the barrier bit to be needlessly set
for some IO.

Signed-off-by: Jens Axboe <axboe@suse.de>
  • Loading branch information
Jens Axboe committed Jul 6, 2006
1 parent 40359cc commit 1959d21
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 3 deletions.
4 changes: 2 additions & 2 deletions block/ll_rw_blk.c
Original file line number Diff line number Diff line change
Expand Up @@ -3491,8 +3491,8 @@ EXPORT_SYMBOL(end_request);

void blk_rq_bio_prep(request_queue_t *q, struct request *rq, struct bio *bio)
{
/* first three bits are identical in rq->flags and bio->bi_rw */
rq->flags |= (bio->bi_rw & 7);
/* first two bits are identical in rq->flags and bio->bi_rw */
rq->flags |= (bio->bi_rw & 3);

rq->nr_phys_segments = bio_phys_segments(q, bio);
rq->nr_hw_segments = bio_hw_segments(q, bio);
Expand Down
2 changes: 1 addition & 1 deletion include/linux/blktrace_api.h
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ static inline void blk_add_trace_rq(struct request_queue *q, struct request *rq,
u32 what)
{
struct blk_trace *bt = q->blk_trace;
int rw = rq->flags & 0x07;
int rw = rq->flags & 0x03;

if (likely(!bt))
return;
Expand Down

0 comments on commit 1959d21

Please sign in to comment.