Btrfs: Make sure bio pages are adjacent during bulk csumming
Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
parent
6885f308b5
commit
2e1a992e31
@ -161,7 +161,6 @@ int btrfs_csum_file_blocks(struct btrfs_trans_handle *trans,
|
|||||||
unsigned long map_len;
|
unsigned long map_len;
|
||||||
unsigned long map_start;
|
unsigned long map_start;
|
||||||
|
|
||||||
|
|
||||||
path = btrfs_alloc_path();
|
path = btrfs_alloc_path();
|
||||||
BUG_ON(!path);
|
BUG_ON(!path);
|
||||||
again:
|
again:
|
||||||
@ -315,8 +314,11 @@ next_bvec:
|
|||||||
if (bio_index < bio->bi_vcnt) {
|
if (bio_index < bio->bi_vcnt) {
|
||||||
item = (struct btrfs_csum_item *)((char *)item +
|
item = (struct btrfs_csum_item *)((char *)item +
|
||||||
BTRFS_CRC32_SIZE);
|
BTRFS_CRC32_SIZE);
|
||||||
if (item < item_end)
|
if (item < item_end && offset + PAGE_CACHE_SIZE ==
|
||||||
|
page_offset(bvec->bv_page)) {
|
||||||
|
offset = page_offset(bvec->bv_page);
|
||||||
goto next_bvec;
|
goto next_bvec;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (eb_token) {
|
if (eb_token) {
|
||||||
unmap_extent_buffer(leaf, eb_token, KM_IRQ1);
|
unmap_extent_buffer(leaf, eb_token, KM_IRQ1);
|
||||||
|
Loading…
Reference in New Issue
Block a user