summaryrefslogtreecommitdiff
path: root/fs/nilfs2/gcinode.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2025-08-02 23:02:29 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2025-08-02 23:09:29 -0400
commit5273c28f7bedc851a931479648178fb651f11d62 (patch)
treed24c8a83b5b655f8211d3604f3cc590659df4bc7 /fs/nilfs2/gcinode.c
parent0e1ecd732c0b62d957320c056c28a0a6520bf061 (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 'fs/nilfs2/gcinode.c')
0 files changed, 0 insertions, 0 deletions