summaryrefslogtreecommitdiff
path: root/fs/bcachefs/super.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2016-02-20 04:27:56 -0900
committerKent Overstreet <kent.overstreet@gmail.com>2016-08-28 19:16:16 -0800
commitaae4a1ff28578bbb1346deedfffd5152b5b2a49f (patch)
tree3a0bcc0e78f65dff676e18952f2cbc5a530c89a2 /fs/bcachefs/super.c
parent8257a6962f0ce690672fc228d220c82126a54f35 (diff)
rework allocator round robiningbcache-dev-wip
Diffstat (limited to 'fs/bcachefs/super.c')
-rw-r--r--fs/bcachefs/super.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/bcachefs/super.c b/fs/bcachefs/super.c
index beb0587be4ce..1938bec2bbe1 100644
--- a/fs/bcachefs/super.c
+++ b/fs/bcachefs/super.c
@@ -146,7 +146,8 @@ static int bch_congested_fn(void *data, int bdi_bits)
}
} else {
/* Writes only go to tier 0: */
- group_for_each_cache_rcu(ca, &c->cache_tiers[0], i) {
+ mutex_lock(&c->cache_tiers[0].lock);
+ group_for_each_cache(ca, &c->cache_tiers[0], i) {
bdi = blk_get_backing_dev_info(ca->disk_sb.bdev);
if (bdi_congested(bdi, bdi_bits)) {
@@ -154,6 +155,7 @@ static int bch_congested_fn(void *data, int bdi_bits)
break;
}
}
+ mutex_unlock(&c->cache_tiers[0].lock);
}
rcu_read_unlock();