]> www.infradead.org Git - users/hch/block.git/commit
bcachefs: Don't delete unlinked inodes before logged op resume
authorKent Overstreet <kent.overstreet@linux.dev>
Thu, 26 Sep 2024 19:19:17 +0000 (15:19 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sat, 28 Sep 2024 01:46:35 +0000 (21:46 -0400)
commitfd65378db9998a6deafdc4910ee1b01b377d6fee
treeb289fa116cb51b05086807a8fa93d07557ed84af
parent8d65b15f8d93638cfa9dae20a4274d5059c3b9d2
bcachefs: Don't delete unlinked inodes before logged op resume

Previously, check_inode() would delete unlinked inodes if they weren't
on the deleted list - this code dating from before there was a deleted
list.

But, if we crash during a logged op (truncate or finsert/fcollapse) of
an unlinked file, logged op resume will get confused if the inode has
already been deleted - instead, just add it to the deleted list if it
needs to be there; delete_dead_inodes runs after logged op resume.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/fsck.c
fs/bcachefs/recovery_passes_types.h
fs/bcachefs/sb-errors_format.h
fs/bcachefs/super-io.c