mirror of https://gitee.com/openkylin/linux.git
bcache: clean up do_btree_node_write a bit
Use a variable containing the buffer address instead of the to be removed integer iterator from bio_for_each_segment_all. Suggested-by: Matthew Wilcox <willy@infradead.org> Reviewed-by: Hannes Reinecke <hare@suse.com> Acked-by: Coly Li <colyli@suse.de> Reviewed-by: Matthew Wilcox <willy@infradead.org> Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
cdca22bcbc
commit
f936b06ae5
|
@ -431,12 +431,13 @@ static void do_btree_node_write(struct btree *b)
|
||||||
if (!bch_bio_alloc_pages(b->bio, __GFP_NOWARN|GFP_NOWAIT)) {
|
if (!bch_bio_alloc_pages(b->bio, __GFP_NOWARN|GFP_NOWAIT)) {
|
||||||
int j;
|
int j;
|
||||||
struct bio_vec *bv;
|
struct bio_vec *bv;
|
||||||
void *base = (void *) ((unsigned long) i & ~(PAGE_SIZE - 1));
|
void *addr = (void *) ((unsigned long) i & ~(PAGE_SIZE - 1));
|
||||||
struct bvec_iter_all iter_all;
|
struct bvec_iter_all iter_all;
|
||||||
|
|
||||||
bio_for_each_segment_all(bv, b->bio, j, iter_all)
|
bio_for_each_segment_all(bv, b->bio, j, iter_all) {
|
||||||
memcpy(page_address(bv->bv_page),
|
memcpy(page_address(bv->bv_page), addr, PAGE_SIZE);
|
||||||
base + j * PAGE_SIZE, PAGE_SIZE);
|
addr += PAGE_SIZE;
|
||||||
|
}
|
||||||
|
|
||||||
bch_submit_bbio(b->bio, b->c, &k.key, 0);
|
bch_submit_bbio(b->bio, b->c, &k.key, 0);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue