summaryrefslogtreecommitdiff
path: root/libbcache/alloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbcache/alloc.c')
-rw-r--r--libbcache/alloc.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/libbcache/alloc.c b/libbcache/alloc.c
index 2392c688..2f892914 100644
--- a/libbcache/alloc.c
+++ b/libbcache/alloc.c
@@ -154,11 +154,10 @@ static void pd_controllers_update(struct work_struct *work)
s64 fragmented = ((stats.buckets_dirty +
stats.buckets_cached) <<
bucket_bits) -
- ((stats.sectors_dirty +
- stats.sectors_cached) << 9);
+ ((stats.sectors[S_DIRTY] +
+ stats.sectors[S_CACHED] ) << 9);
- if (fragmented < 0)
- fragmented = 0;
+ fragmented = max(0LL, fragmented);
bch_pd_controller_update(&ca->moving_gc_pd,
free, fragmented, -1);