Browse Source

btrfs: scrub: clean up division in scrub_find_csum

Use proper helpers for 64bit division.

Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba 8 years ago
parent
commit
1d1bf92d9d
1 changed files with 3 additions and 1 deletions
  1. 3 1
      fs/btrfs/scrub.c

+ 3 - 1
fs/btrfs/scrub.c

@@ -2708,7 +2708,9 @@ static int scrub_find_csum(struct scrub_ctx *sctx, u64 logical, u8 *csum)
 	if (!sum)
 		return 0;
 
-	index = ((u32)(logical - sum->bytenr)) / sctx->fs_info->sectorsize;
+	index = div_u64(logical - sum->bytenr, sctx->fs_info->sectorsize);
+	ASSERT(index < UINT_MAX);
+
 	num_sectors = sum->len / sctx->fs_info->sectorsize;
 	memcpy(csum, sum->sums + index, sctx->csum_size);
 	if (index == num_sectors - 1) {