aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/bcache/writeback.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/md/bcache/writeback.h')
-rw-r--r--drivers/md/bcache/writeback.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/md/bcache/writeback.h b/drivers/md/bcache/writeback.h
index c91f61bb95b6..34961888b5a9 100644
--- a/drivers/md/bcache/writeback.h
+++ b/drivers/md/bcache/writeback.h
@@ -18,16 +18,18 @@ static inline bool bcache_dev_stripe_dirty(struct bcache_device *d,
18 uint64_t offset, 18 uint64_t offset,
19 unsigned nr_sectors) 19 unsigned nr_sectors)
20{ 20{
21 uint64_t stripe = offset >> d->stripe_size_bits; 21 uint64_t stripe = offset;
22
23 do_div(stripe, d->stripe_size);
22 24
23 while (1) { 25 while (1) {
24 if (atomic_read(d->stripe_sectors_dirty + stripe)) 26 if (atomic_read(d->stripe_sectors_dirty + stripe))
25 return true; 27 return true;
26 28
27 if (nr_sectors <= 1 << d->stripe_size_bits) 29 if (nr_sectors <= d->stripe_size)
28 return false; 30 return false;
29 31
30 nr_sectors -= 1 << d->stripe_size_bits; 32 nr_sectors -= d->stripe_size;
31 stripe++; 33 stripe++;
32 } 34 }
33} 35}