]> www.infradead.org Git - users/jedix/linux-maple.git/commit
bcachefs: Don't schedule non persistent passes persistently
authorKent Overstreet <kent.overstreet@linux.dev>
Sun, 6 Jul 2025 23:25:27 +0000 (19:25 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Mon, 7 Jul 2025 18:10:47 +0000 (14:10 -0400)
commit7de3c8b4077e052a6f7880a9ae0f42342c49631b
tree8de9754666112270d6970869ae3f08bb71a57b61
parent63a83463d278ea9f9eff7f58708322856e106d87
bcachefs: Don't schedule non persistent passes persistently

  if (!(in_recovery && (flags & RUN_RECOVERY_PASS_nopersistent)))

should have been

  if (!in_recovery && !(flags & RUN_RECOVERY_PASS_nopersistent)))

But the !in_recovery part was also wrong: the assumption is that if
we're in recovery we'll just rewind and run the recovery pass
immediately, but we're not able to do so if we've already gone RW and
the pass must be run before we go RW. In that case, we need to schedule
it in the superblock so it can be run on the next mount attempt.

Scheduling it persistently is fine, because it'll be cleared in the
superblock immediately when the pass completes successfully.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/recovery_passes.c