summaryrefslogtreecommitdiff
path: root/libbcache/alloc.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2017-03-12 06:53:43 -0800
committerKent Overstreet <kent.overstreet@gmail.com>2017-03-12 06:53:43 -0800
commitd252e12accd8b4fdc0e50b539370b203f3894de9 (patch)
tree075bef138b2a3bfe4a935dacfaa68d55cb0db7c1 /libbcache/alloc.c
parent3bf874183a518cc1bf785d9944de05cf51a177d3 (diff)
Refactoring for device specific commands
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);