diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2025-04-29 21:41:37 +0300 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2025-05-22 03:14:38 +0300 |
commit | 5ce11d9d1bd5dfd8876d35bd9e61f38f47807c42 (patch) | |
tree | 8fcbff767b4cfc9d8349650dc59948b310dd5bf6 /fs/bcachefs/sysfs.c | |
parent | ae0386e111253eee0f71ae3f32635a3ba22e5a7b (diff) | |
download | linux-5ce11d9d1bd5dfd8876d35bd9e61f38f47807c42.tar.xz |
bcachefs: sysfs trigger_recalc_capacity
For bug diagnosis
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/sysfs.c')
-rw-r--r-- | fs/bcachefs/sysfs.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/fs/bcachefs/sysfs.c b/fs/bcachefs/sysfs.c index dfae5eda7a4c..1d0c0f24a7b9 100644 --- a/fs/bcachefs/sysfs.c +++ b/fs/bcachefs/sysfs.c @@ -146,8 +146,9 @@ write_attribute(trigger_journal_flush); write_attribute(trigger_journal_writes); write_attribute(trigger_btree_cache_shrink); write_attribute(trigger_btree_key_cache_shrink); -write_attribute(trigger_freelist_wakeup); write_attribute(trigger_btree_updates); +write_attribute(trigger_freelist_wakeup); +write_attribute(trigger_recalc_capacity); read_attribute(gc_gens_pos); read_attribute(uuid); @@ -428,6 +429,12 @@ STORE(bch2_fs) if (attr == &sysfs_trigger_freelist_wakeup) closure_wake_up(&c->freelist_wait); + if (attr == &sysfs_trigger_recalc_capacity) { + down_read(&c->state_lock); + bch2_recalc_capacity(c); + up_read(&c->state_lock); + } + #ifdef CONFIG_BCACHEFS_TESTS if (attr == &sysfs_perf_test) { char *tmp = kstrdup(buf, GFP_KERNEL), *p = tmp; @@ -553,8 +560,9 @@ struct attribute *bch2_fs_internal_files[] = { &sysfs_trigger_journal_writes, &sysfs_trigger_btree_cache_shrink, &sysfs_trigger_btree_key_cache_shrink, - &sysfs_trigger_freelist_wakeup, &sysfs_trigger_btree_updates, + &sysfs_trigger_freelist_wakeup, + &sysfs_trigger_recalc_capacity, &sysfs_gc_gens_pos, |