History log of /linux/fs/bcachefs/fsck.c (Results 1 – 25 of 255)
Revision Date Author Comments
# dab18704 06-Jun-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: fix stack frame size in fsck.c

fsck.c always runs top of the stack so we're not too concerned here;
noinline_for_stack is sufficient

Signed-off-by: Kent Overstreet <kent.overstreet@linux.

bcachefs: fix stack frame size in fsck.c

fsck.c always runs top of the stack so we're not too concerned here;
noinline_for_stack is sufficient

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

show more ...


# 08f50005 26-May-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: Run check_key_has_snapshot in snapshot_delete_keys()

delete_dead_snapshots now runs before the main fsck.c passes which check
for keys for invalid snapshots; thus, it needs those checks as

bcachefs: Run check_key_has_snapshot in snapshot_delete_keys()

delete_dead_snapshots now runs before the main fsck.c passes which check
for keys for invalid snapshots; thus, it needs those checks as well.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

show more ...


# 9e1a66e6 26-May-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: Fix lookup_first_inode() when inode_generations are present

This function is used for finding the hash seed (which is the same in
all versions of an inode in different snapshots): ff an in

bcachefs: Fix lookup_first_inode() when inode_generations are present

This function is used for finding the hash seed (which is the same in
all versions of an inode in different snapshots): ff an inode has been
deleted in a child snapshot we need to iterate until we find a live
version.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

show more ...


# 4da1713a 26-Apr-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: check for inodes that should have backpointers in fsck

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>


# 5a2d1521 17-Apr-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: Rip bch2_snapshot_equiv() out of fsck

Originally, when deleting snapshots we didn't collapse redundant
snapshot nodes; thus, the notion of a class of equivalent snapshot nodes
leaked into

bcachefs: Rip bch2_snapshot_equiv() out of fsck

Originally, when deleting snapshots we didn't collapse redundant
snapshot nodes; thus, the notion of a class of equivalent snapshot nodes
leaked into fsck.

Now we do, so snapshot ID equivalence classes are purely local to
snapshot deletion.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

show more ...


# 5dd8c60e 07-Apr-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: iter/update/trigger/str_hash flag cleanup

Combine iter/update/trigger/str_hash flags into a single enum, and
x-macroize them for a to_text() function later.

These flags are all for a spec

bcachefs: iter/update/trigger/str_hash flag cleanup

Combine iter/update/trigger/str_hash flags into a single enum, and
x-macroize them for a to_text() function later.

These flags are all for a specific iter/key/update context, so it makes
sense to group them together - iter/update/trigger flags were already
given distinct bits, this cleans up and unifies that handling.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

show more ...


# ac01928b 07-Apr-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: bch2_hash_lookup() now returns bkey_s_c

small cleanup

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>


# 09d4c2ac 01-Apr-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: reconstruct_inode()

If an inode is missing, but corresponding extents and dirent still
exist, it's well worth recreating it - this does so.

Signed-off-by: Kent Overstreet <kent.overstreet

bcachefs: reconstruct_inode()

If an inode is missing, but corresponding extents and dirent still
exist, it's well worth recreating it - this does so.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

show more ...


# cc053290 31-Mar-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: Subvolume reconstruction

We can now recreate missing subvolumes from dirents and/or inodes.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>


# fa14b504 02-Apr-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: ratelimit informational fsck errors

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>


# eab3a3ce 30-Mar-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: Fix overlapping extent repair

overlapping extent repair was colliding with extent past end of inode
checks - don't update "extent ends at" until we know we have an extent.

Signed-off-by:

bcachefs: Fix overlapping extent repair

overlapping extent repair was colliding with extent past end of inode
checks - don't update "extent ends at" until we know we have an extent.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

show more ...


# 8ce1db80 01-Apr-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: Fix remove_dirent()

We were missing an iter_traverse().

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>


# d2554263 24-Mar-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: Split out recovery_passes.c

We've grown a fair amount of code for managing recovery passes; tracking
which ones we're running, which ones need to be run, and flagging in the
superblock whi

bcachefs: Split out recovery_passes.c

We've grown a fair amount of code for managing recovery passes; tracking
which ones we're running, which ones need to be run, and flagging in the
superblock which ones need to be run on the next recovery.

So it's worth splitting out into its own file, this code is pretty
different from the code in recovery.c.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

show more ...


# dcc1c045 26-Mar-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: Fix use after free in check_root_trans()

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>


# 109ea419 14-Mar-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: Fix spurious -BCH_ERR_transaction_restart_nested

We only need to return transaction_restart_nested when we're inside a
context that's handling transaction restarts.

Also, add a missing ch

bcachefs: Fix spurious -BCH_ERR_transaction_restart_nested

We only need to return transaction_restart_nested when we're inside a
context that's handling transaction restarts.

Also, add a missing check_subdir_count() call.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

show more ...


# 3ff34756 16-Mar-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: Fix check_key_has_snapshot() call

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>


# 74406f66 16-Feb-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: check_path() now only needs to walk up to subvolume root

Now that checking subvolume structure is a separate pass, the main
check_directory_connectivity() pass only needs to walk up to a g

bcachefs: check_path() now only needs to walk up to subvolume root

Now that checking subvolume structure is a separate pass, the main
check_directory_connectivity() pass only needs to walk up to a given
inode's subvolume root.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

show more ...


# 663db5a5 16-Feb-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: bch2_check_subvolume_structure()

Now that we've got bch_subvolume.fs_path_parent, it's easy to write
subvolume

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>


# b8628a25 08-Feb-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: bch_subvolume::fs_path_parent

Record the filesystem path heirarchy for subvolumes in bch_subvolume

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>


# 56e23047 09-Feb-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: Correctly reattach subvolumes

Subvolumes need special handling to reattach - we always reattach them
in the root subvolume's lost+found, and they need a slightly different
kind of dirent.

bcachefs: Correctly reattach subvolumes

Subvolumes need special handling to reattach - we always reattach them
in the root subvolume's lost+found, and they need a slightly different
kind of dirent.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

show more ...


# 3a136177 09-Feb-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: check_path() now prints full inode when reattaching

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>


# 688a7694 09-Feb-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: Pass inode bkey to check_path()

prep work for improving logging/error messages

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>


# f5d58d0c 09-Feb-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: Fix path where dirent -> subvol missing and we don't fix

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>


# 45b4ed52 21-Jan-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: Repair subvol dirents that point to non subvols

when repair switches d_type to or from DT_SUBVOL, we need to update the
target accordingly

Signed-off-by: Kent Overstreet <kent.overstreet@

bcachefs: Repair subvol dirents that point to non subvols

when repair switches d_type to or from DT_SUBVOL, we need to update the
target accordingly

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

show more ...


# c60b7f80 07-Feb-2024 Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: check dirent->d_parent_subvol

Check that d_parent_subvol makes sense - the dirent's snapshot must be
visible in d_parent_subvol (i.e. an ancestor of d_parent_subvol's
snapshot) in order to

bcachefs: check dirent->d_parent_subvol

Check that d_parent_subvol makes sense - the dirent's snapshot must be
visible in d_parent_subvol (i.e. an ancestor of d_parent_subvol's
snapshot) in order to be visible.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

show more ...


1234567891011