mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-09 07:51:16 -04:00
bcachefs: Fix bch2_mark_stripe()
There's no reason not to always recalculate these fields Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
committed by
Kent Overstreet
parent
b88e971e45
commit
5b088c1dd0
@@ -1264,6 +1264,13 @@ static int bch2_mark_stripe(struct bch_fs *c,
|
||||
m->algorithm = new_s->algorithm;
|
||||
m->nr_blocks = new_s->nr_blocks;
|
||||
m->nr_redundant = new_s->nr_redundant;
|
||||
m->blocks_nonempty = 0;
|
||||
|
||||
for (i = 0; i < new_s->nr_blocks; i++) {
|
||||
m->block_sectors[i] =
|
||||
stripe_blockcount_get(new_s, i);
|
||||
m->blocks_nonempty += !!m->block_sectors[i];
|
||||
}
|
||||
|
||||
if (gc && old_s)
|
||||
update_replicas(c, fs_usage, &m->r.e,
|
||||
@@ -1275,17 +1282,6 @@ static int bch2_mark_stripe(struct bch_fs *c,
|
||||
update_replicas(c, fs_usage, &m->r.e,
|
||||
((s64) m->sectors * m->nr_redundant));
|
||||
|
||||
/* gc recalculates these fields: */
|
||||
if (!(flags & BTREE_TRIGGER_GC)) {
|
||||
m->blocks_nonempty = 0;
|
||||
|
||||
for (i = 0; i < new_s->nr_blocks; i++) {
|
||||
m->block_sectors[i] =
|
||||
stripe_blockcount_get(new_s, i);
|
||||
m->blocks_nonempty += !!m->block_sectors[i];
|
||||
}
|
||||
}
|
||||
|
||||
if (!gc) {
|
||||
spin_lock(&c->ec_stripes_heap_lock);
|
||||
bch2_stripes_heap_update(c, m, idx);
|
||||
|
||||
Reference in New Issue
Block a user