diff options
author | 2025-04-26 11:05:32 -0400 | |
---|---|---|
committer | 2025-04-28 16:46:12 -0400 | |
commit | 3c24020119a5f55ec902b5fdc24d8666d76340b3 (patch) | |
tree | 45adac27ca6f033ccb0106897bb14fd116ca8ba6 | |
parent | bcachefs: Add missing utf8_unload() (diff) | |
download | linux-rng-3c24020119a5f55ec902b5fdc24d8666d76340b3.tar.xz linux-rng-3c24020119a5f55ec902b5fdc24d8666d76340b3.zip |
bcachefs: Run BCH_RECOVERY_PASS_reconstruct_snapshots on missing subvol -> snapshot
Fix this repair path.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r-- | fs/bcachefs/subvolume.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/bcachefs/subvolume.c b/fs/bcachefs/subvolume.c index 5537283d0bea..d0209f7658bb 100644 --- a/fs/bcachefs/subvolume.c +++ b/fs/bcachefs/subvolume.c @@ -6,6 +6,7 @@ #include "errcode.h" #include "error.h" #include "fs.h" +#include "recovery_passes.h" #include "snapshot.h" #include "subvolume.h" @@ -44,8 +45,8 @@ static int check_subvol(struct btree_trans *trans, ret = bch2_snapshot_lookup(trans, snapid, &snapshot); if (bch2_err_matches(ret, ENOENT)) - bch_err(c, "subvolume %llu points to nonexistent snapshot %u", - k.k->p.offset, snapid); + return bch2_run_explicit_recovery_pass(c, + BCH_RECOVERY_PASS_reconstruct_snapshots) ?: ret; if (ret) return ret; |