bcachefs: Don't run bch2_delete_dead_snapshots() unnecessarily
authorKent Overstreet <kent.overstreet@linux.dev>
Fri, 20 Oct 2023 01:25:04 +0000 (21:25 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Tue, 31 Oct 2023 16:18:37 +0000 (12:18 -0400)
commitb0b5bbf99fc269e10d01c2a9873de5a042bdc7f5
treeb8f85ae12d67ec11d3fd2c812ef1124fce9a5d6f
parent0dd092bf1091a114f22136e5776aec21e6e4af2a
bcachefs: Don't run bch2_delete_dead_snapshots() unnecessarily

Be a bit more careful about when bch2_delete_dead_snapshots needs to
run: it only needs to run synchronously if we're running fsck, and it
only needs to run at all if we have snapshot nodes to delete or if fsck
has noticed that it needs to run.

Also:
  Rename BCH_FS_HAVE_DELETED_SNAPSHOTS -> BCH_FS_NEED_DELETE_DEAD_SNAPSHOTS

  Kill bch2_delete_dead_snapshots_hook(), move functionality to
  bch2_mark_snapshot()

  Factor out bch2_check_snapshot_needs_deletion(), to explicitly check
  if we need to be running snapshot deletion.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/bcachefs.h
fs/bcachefs/fsck.c
fs/bcachefs/recovery.c
fs/bcachefs/recovery_types.h
fs/bcachefs/snapshot.c
fs/bcachefs/snapshot.h
fs/bcachefs/subvolume.c