summaryrefslogtreecommitdiff
path: root/fs/xfs/scrub/dir_repair.c
diff options
context:
space:
mode:
authorDarrick J. Wong <djwong@kernel.org>2021-02-17 20:11:46 -0800
committerDarrick J. Wong <djwong@kernel.org>2021-03-25 17:08:37 -0700
commitba4e7884e52e1f90e3adab43514a2af0c825c88a (patch)
tree857f1d74071a11fd54d6ddca65798c79c7e4aff5 /fs/xfs/scrub/dir_repair.c
parent20e9d03d164e2961fdb77243182211632d7afdbd (diff)
xfs: scrub metadata directories
Teach online scrub about the metadata directory tree. Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Diffstat (limited to 'fs/xfs/scrub/dir_repair.c')
-rw-r--r--fs/xfs/scrub/dir_repair.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/xfs/scrub/dir_repair.c b/fs/xfs/scrub/dir_repair.c
index 942ae7e15165..2d91194c83e2 100644
--- a/fs/xfs/scrub/dir_repair.c
+++ b/fs/xfs/scrub/dir_repair.c
@@ -171,6 +171,12 @@ xrep_dir_salvage_entry(
if (error)
return 0;
+ /* Don't mix metadata and regular directory trees. */
+ if (xfs_is_metadata_inode(ip) ^ xfs_is_metadata_inode(rd->sc->ip)) {
+ xfs_irele(ip);
+ return 0;
+ }
+
key.ftype = xfs_mode_to_ftype(VFS_I(ip)->i_mode);
xfs_irele(ip);