提交 2e1a992e 编写于 作者: C Chris Mason

Btrfs: Make sure bio pages are adjacent during bulk csumming

Signed-off-by: NChris Mason <chris.mason@oracle.com>
上级 6885f308
......@@ -161,7 +161,6 @@ int btrfs_csum_file_blocks(struct btrfs_trans_handle *trans,
unsigned long map_len;
unsigned long map_start;
path = btrfs_alloc_path();
BUG_ON(!path);
again:
......@@ -315,8 +314,11 @@ int btrfs_csum_file_blocks(struct btrfs_trans_handle *trans,
if (bio_index < bio->bi_vcnt) {
item = (struct btrfs_csum_item *)((char *)item +
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;
}
}
if (eb_token) {
unmap_extent_buffer(leaf, eb_token, KM_IRQ1);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册