提交 fe8cf654 编写于 作者: Z Zhao Lei 提交者: Chris Mason

btrfs: Load only necessary csums into list in scrub

We need not load csum of whole strip in scrub because strip is trimed
before use, it is to say, what we really need to calculate csum is
data between [extent_logical, extent_len).

This patch changed to use above segment for btrfs_lookup_csums_range()
in scrub_stripe()
Signed-off-by: NZhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: NChris Mason <clm@fb.com>
上级 a0dd59de
...@@ -3254,9 +3254,11 @@ static noinline_for_stack int scrub_stripe(struct scrub_ctx *sctx, ...@@ -3254,9 +3254,11 @@ static noinline_for_stack int scrub_stripe(struct scrub_ctx *sctx,
&extent_dev, &extent_dev,
&extent_mirror_num); &extent_mirror_num);
ret = btrfs_lookup_csums_range(csum_root, logical, ret = btrfs_lookup_csums_range(csum_root,
logical + map->stripe_len - 1, extent_logical,
&sctx->csum_list, 1); extent_logical +
extent_len - 1,
&sctx->csum_list, 1);
if (ret) if (ret)
goto out; goto out;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册