aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/bcache/writeback.c
diff options
context:
space:
mode:
authorMing Lei <tom.leiming@gmail.com>2016-11-22 10:57:21 -0500
committerJens Axboe <axboe@fb.com>2016-11-22 10:57:21 -0500
commit3a83f4677539bce8eaa2bca9ee9c20e172d7ab04 (patch)
treeedb5ffeed2c07c342bd6d9adb0180fab472c1666 /drivers/md/bcache/writeback.c
parent9a794fb9bddeda0b8c8c13858038318f3cbd4b7e (diff)
block: bio: pass bvec table to bio_init()
Some drivers often use external bvec table, so introduce this helper for this case. It is always safe to access the bio->bi_io_vec in this way for this case. After converting to this usage, it will becomes a bit easier to evaluate the remaining direct access to bio->bi_io_vec, so it can help to prepare for the following multipage bvec support. Signed-off-by: Ming Lei <tom.leiming@gmail.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Fixed up the new O_DIRECT cases. Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'drivers/md/bcache/writeback.c')
-rw-r--r--drivers/md/bcache/writeback.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/md/bcache/writeback.c b/drivers/md/bcache/writeback.c
index e51644e503a5..69e1ae59cab8 100644
--- a/drivers/md/bcache/writeback.c
+++ b/drivers/md/bcache/writeback.c
@@ -106,14 +106,13 @@ static void dirty_init(struct keybuf_key *w)
106 struct dirty_io *io = w->private; 106 struct dirty_io *io = w->private;
107 struct bio *bio = &io->bio; 107 struct bio *bio = &io->bio;
108 108
109 bio_init(bio); 109 bio_init(bio, bio->bi_inline_vecs,
110 DIV_ROUND_UP(KEY_SIZE(&w->key), PAGE_SECTORS));
110 if (!io->dc->writeback_percent) 111 if (!io->dc->writeback_percent)
111 bio_set_prio(bio, IOPRIO_PRIO_VALUE(IOPRIO_CLASS_IDLE, 0)); 112 bio_set_prio(bio, IOPRIO_PRIO_VALUE(IOPRIO_CLASS_IDLE, 0));
112 113
113 bio->bi_iter.bi_size = KEY_SIZE(&w->key) << 9; 114 bio->bi_iter.bi_size = KEY_SIZE(&w->key) << 9;
114 bio->bi_max_vecs = DIV_ROUND_UP(KEY_SIZE(&w->key), PAGE_SECTORS);
115 bio->bi_private = w; 115 bio->bi_private = w;
116 bio->bi_io_vec = bio->bi_inline_vecs;
117 bch_bio_map(bio, NULL); 116 bch_bio_map(bio, NULL);
118} 117}
119 118