diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2025-08-02 23:02:29 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2025-08-02 23:09:29 -0400 |
commit | 5273c28f7bedc851a931479648178fb651f11d62 (patch) | |
tree | d24c8a83b5b655f8211d3604f3cc590659df4bc7 /Documentation/arch/arm/kernel_user_helpers.rst | |
parent | 0e1ecd732c0b62d957320c056c28a0a6520bf061 (diff) |
bcachefs: bch2_copygc_get_stripe_buckets()bcachefs-testing
It turns out, it's possible for a filesystem to run out of free space by
stranding disk space in stripes that have some blocks completely full
and others completely; previously, copygc didn't notice this.
This usually isn't a problem because new EC writes will reuse those
stripes, which releases the empty blocks. But if for some reason that
doesn't happen (perhaps we turned off EC? Perhaps we were very unlucky
with which extents got overwrote?), we want copygc to clean this up.
Now, copygc_dev_wait_amount checks for empty buckets of non-empty data
type (to pick up empty buckets that belong to a stripe), and we check if
there's overly much disk space stranded on stripes - if so, we evacuate
those.
Reported-by: Marcin Mirosław <marcin@mejor.pl>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'Documentation/arch/arm/kernel_user_helpers.rst')
0 files changed, 0 insertions, 0 deletions