mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
bcachefs: do reflink_p repair from BTREE_TRIGGER_check_repair
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
f40d13f94d
commit
c451986bf4
1 changed files with 5 additions and 2 deletions
|
@ -164,10 +164,13 @@ static s64 gc_trigger_reflink_p_segment(struct btree_trans *trans,
|
|||
|
||||
BUG_ON((s64) r->refcount + add < 0);
|
||||
|
||||
r->refcount += add;
|
||||
if (flags & BTREE_TRIGGER_gc)
|
||||
r->refcount += add;
|
||||
*idx = r->offset;
|
||||
return 0;
|
||||
not_found:
|
||||
BUG_ON(!(flags & BTREE_TRIGGER_check_repair));
|
||||
|
||||
if (fsck_err(c, reflink_p_to_missing_reflink_v,
|
||||
"pointer to missing indirect extent\n"
|
||||
" %s\n"
|
||||
|
@ -216,7 +219,7 @@ static int __trigger_reflink_p(struct btree_trans *trans,
|
|||
ret = trans_trigger_reflink_p_segment(trans, p, &idx, flags);
|
||||
}
|
||||
|
||||
if (flags & BTREE_TRIGGER_gc) {
|
||||
if (flags & (BTREE_TRIGGER_check_repair|BTREE_TRIGGER_gc)) {
|
||||
size_t l = 0, r = c->reflink_gc_nr;
|
||||
|
||||
while (l < r) {
|
||||
|
|
Loading…
Add table
Reference in a new issue