Commit c8d93247 authored by Mike Christie's avatar Mike Christie Committed by Jens Axboe

bcache: use op_is_write instead of checking for REQ_WRITE

We currently set REQ_WRITE/WRITE for all non READ IOs
like discard, flush, writesame, etc. In the next patches where we
no longer set up the op as a bitmap, we will not be able to
detect a operation direction like writesame by testing if REQ_WRITE is
set.

This has bcache use the op_is_write helper which will do the right
thing.
Signed-off-by: default avatarMike Christie <mchristi@redhat.com>
Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent 51111666
...@@ -111,7 +111,7 @@ void bch_bbio_count_io_errors(struct cache_set *c, struct bio *bio, ...@@ -111,7 +111,7 @@ void bch_bbio_count_io_errors(struct cache_set *c, struct bio *bio,
struct bbio *b = container_of(bio, struct bbio, bio); struct bbio *b = container_of(bio, struct bbio, bio);
struct cache *ca = PTR_CACHE(c, &b->key, 0); struct cache *ca = PTR_CACHE(c, &b->key, 0);
unsigned threshold = bio->bi_rw & REQ_WRITE unsigned threshold = op_is_write(bio_op(bio))
? c->congested_write_threshold_us ? c->congested_write_threshold_us
: c->congested_read_threshold_us; : c->congested_read_threshold_us;
......
...@@ -383,7 +383,7 @@ static bool check_should_bypass(struct cached_dev *dc, struct bio *bio) ...@@ -383,7 +383,7 @@ static bool check_should_bypass(struct cached_dev *dc, struct bio *bio)
if (mode == CACHE_MODE_NONE || if (mode == CACHE_MODE_NONE ||
(mode == CACHE_MODE_WRITEAROUND && (mode == CACHE_MODE_WRITEAROUND &&
(bio->bi_rw & REQ_WRITE))) op_is_write(bio_op(bio))))
goto skip; goto skip;
if (bio->bi_iter.bi_sector & (c->sb.block_size - 1) || if (bio->bi_iter.bi_sector & (c->sb.block_size - 1) ||
...@@ -404,7 +404,7 @@ static bool check_should_bypass(struct cached_dev *dc, struct bio *bio) ...@@ -404,7 +404,7 @@ static bool check_should_bypass(struct cached_dev *dc, struct bio *bio)
if (!congested && if (!congested &&
mode == CACHE_MODE_WRITEBACK && mode == CACHE_MODE_WRITEBACK &&
(bio->bi_rw & REQ_WRITE) && op_is_write(bio_op(bio)) &&
(bio->bi_rw & REQ_SYNC)) (bio->bi_rw & REQ_SYNC))
goto rescale; goto rescale;
...@@ -657,7 +657,7 @@ static inline struct search *search_alloc(struct bio *bio, ...@@ -657,7 +657,7 @@ static inline struct search *search_alloc(struct bio *bio,
s->cache_miss = NULL; s->cache_miss = NULL;
s->d = d; s->d = d;
s->recoverable = 1; s->recoverable = 1;
s->write = (bio->bi_rw & REQ_WRITE) != 0; s->write = op_is_write(bio_op(bio));
s->read_dirty_data = 0; s->read_dirty_data = 0;
s->start_time = jiffies; s->start_time = jiffies;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment