diff options
-rw-r--r-- | fs/btrfs/scrub.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c index 48dd6f170c36..58c5864bf709 100644 --- a/fs/btrfs/scrub.c +++ b/fs/btrfs/scrub.c | |||
@@ -140,7 +140,7 @@ struct scrub_parity { | |||
140 | 140 | ||
141 | int nsectors; | 141 | int nsectors; |
142 | 142 | ||
143 | int stripe_len; | 143 | u64 stripe_len; |
144 | 144 | ||
145 | refcount_t refs; | 145 | refcount_t refs; |
146 | 146 | ||
@@ -2396,7 +2396,7 @@ static inline void __scrub_mark_bitmap(struct scrub_parity *sparity, | |||
2396 | unsigned long *bitmap, | 2396 | unsigned long *bitmap, |
2397 | u64 start, u64 len) | 2397 | u64 start, u64 len) |
2398 | { | 2398 | { |
2399 | u32 offset; | 2399 | u64 offset; |
2400 | int nsectors; | 2400 | int nsectors; |
2401 | int sectorsize = sparity->sctx->fs_info->sectorsize; | 2401 | int sectorsize = sparity->sctx->fs_info->sectorsize; |
2402 | 2402 | ||
@@ -2406,8 +2406,8 @@ static inline void __scrub_mark_bitmap(struct scrub_parity *sparity, | |||
2406 | } | 2406 | } |
2407 | 2407 | ||
2408 | start -= sparity->logic_start; | 2408 | start -= sparity->logic_start; |
2409 | start = div_u64_rem(start, sparity->stripe_len, &offset); | 2409 | start = div64_u64_rem(start, sparity->stripe_len, &offset); |
2410 | offset /= sectorsize; | 2410 | offset = div_u64(offset, sectorsize); |
2411 | nsectors = (int)len / sectorsize; | 2411 | nsectors = (int)len / sectorsize; |
2412 | 2412 | ||
2413 | if (offset + nsectors <= sparity->nsectors) { | 2413 | if (offset + nsectors <= sparity->nsectors) { |