Permalink
Browse files

Btrfs: use right range to find checksum for compressed extents

For compressed extents, the range of checksum is covered by disk length,
and the disk length is different with ram length, so we need to use disk
length instead to get us the right checksum.

Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
  • Loading branch information...
1 parent b017511 commit 192000dda22e02225772e862b92e7c09e5a17d08 Liu Bo committed with Josef Bacik Jan 6, 2013
Showing with 5 additions and 0 deletions.
  1. +5 −0 fs/btrfs/tree-log.c
View
@@ -3357,6 +3357,11 @@ static int log_one_extent(struct btrfs_trans_handle *trans,
if (skip_csum)
return 0;
+ if (em->compress_type) {
+ csum_offset = 0;
+ csum_len = block_len;
+ }
+
/* block start is already adjusted for the file extent offset. */
ret = btrfs_lookup_csums_range(log->fs_info->csum_root,
em->block_start + csum_offset,

0 comments on commit 192000d

Please sign in to comment.