diff options
author | Ming Lei <tom.leiming@gmail.com> | 2016-11-22 10:57:21 -0500 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2016-11-22 10:57:21 -0500 |
commit | 3a83f4677539bce8eaa2bca9ee9c20e172d7ab04 (patch) | |
tree | edb5ffeed2c07c342bd6d9adb0180fab472c1666 /drivers/md/bcache/writeback.c | |
parent | 9a794fb9bddeda0b8c8c13858038318f3cbd4b7e (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.c | 5 |
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 | ||