diff options
author | Darrick J. Wong <djwong@kernel.org> | 2021-09-01 11:19:48 -0700 |
---|---|---|
committer | Darrick J. Wong <djwong@kernel.org> | 2021-10-22 16:41:11 -0700 |
commit | 48c1983a9dd0990e05f4329d9b9f0ccf79c72cdf (patch) | |
tree | ae2d5aee9318f438314369f1d0f04c333fce5f9d /fs/xfs/scrub/inode_repair.c | |
parent | ba23abc809fb8728a703402734eac9fa3fd2a98f (diff) |
xfs: repair inodes that have a refcount btree in the data fork
Plumb knowledge of refcount btrees into the inode core repair code.
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Diffstat (limited to 'fs/xfs/scrub/inode_repair.c')
-rw-r--r-- | fs/xfs/scrub/inode_repair.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/xfs/scrub/inode_repair.c b/fs/xfs/scrub/inode_repair.c index 9e694845401e..c64adde40dce 100644 --- a/fs/xfs/scrub/inode_repair.c +++ b/fs/xfs/scrub/inode_repair.c @@ -33,6 +33,7 @@ #include "xfs_quota_defs.h" #include "xfs_attr_leaf.h" #include "libxfs/xfs_rtrmap_btree.h" +#include "libxfs/xfs_rtrefcount_btree.h" #include "xfs_log_priv.h" #include "xfs_ag.h" #include "scrub/xfs_scrub.h" @@ -885,6 +886,7 @@ xrep_dinode_ensure_forkoff( { struct xfs_bmdr_block *bmdr; struct xfs_rtrmap_root *rmdr; + struct xfs_rtrefcount_root *rcdr; size_t bmdr_minsz = xfs_bmdr_space_calc(1); unsigned int lit_sz = XFS_LITINO(sc->mp); unsigned int afork_min, dfork_min; @@ -993,6 +995,10 @@ xrep_dinode_ensure_forkoff( rmdr = XFS_DFORK_PTR(dip, XFS_DATA_FORK); dfork_min = xfs_rtrmap_broot_space(sc->mp, rmdr); break; + case XFS_DINODE_FMT_REFCOUNT: + rcdr = XFS_DFORK_PTR(dip, XFS_DATA_FORK); + dfork_min = xfs_rtrefcount_broot_space(sc->mp, rcdr); + break; default: dfork_min = 0; break; |