Commit c517b3aa authored by Darrick J. Wong's avatar Darrick J. Wong

xfs: shorten xfs_scrub_ prefix

Shorten all the metadata checking xfs_scrub_ prefixes to xchk_.  After
this, the only xfs_scrub* symbols are the ones that pertain to both
scrub and repair.  Whitespace damage will be fixed in a subsequent
patch.  There are no functional changes.
Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
parent ef97ef26
This diff is collapsed.
...@@ -28,11 +28,11 @@ ...@@ -28,11 +28,11 @@
* Set us up to scrub free space btrees. * Set us up to scrub free space btrees.
*/ */
int int
xfs_scrub_setup_ag_allocbt( xchk_setup_ag_allocbt(
struct xfs_scrub_context *sc, struct xfs_scrub_context *sc,
struct xfs_inode *ip) struct xfs_inode *ip)
{ {
return xfs_scrub_setup_ag_btree(sc, ip, false); return xchk_setup_ag_btree(sc, ip, false);
} }
/* Free space btree scrubber. */ /* Free space btree scrubber. */
...@@ -41,7 +41,7 @@ xfs_scrub_setup_ag_allocbt( ...@@ -41,7 +41,7 @@ xfs_scrub_setup_ag_allocbt(
* bnobt/cntbt record, respectively. * bnobt/cntbt record, respectively.
*/ */
STATIC void STATIC void
xfs_scrub_allocbt_xref_other( xchk_allocbt_xref_other(
struct xfs_scrub_context *sc, struct xfs_scrub_context *sc,
xfs_agblock_t agbno, xfs_agblock_t agbno,
xfs_extlen_t len) xfs_extlen_t len)
...@@ -56,32 +56,32 @@ xfs_scrub_allocbt_xref_other( ...@@ -56,32 +56,32 @@ xfs_scrub_allocbt_xref_other(
pcur = &sc->sa.cnt_cur; pcur = &sc->sa.cnt_cur;
else else
pcur = &sc->sa.bno_cur; pcur = &sc->sa.bno_cur;
if (!*pcur || xfs_scrub_skip_xref(sc->sm)) if (!*pcur || xchk_skip_xref(sc->sm))
return; return;
error = xfs_alloc_lookup_le(*pcur, agbno, len, &has_otherrec); error = xfs_alloc_lookup_le(*pcur, agbno, len, &has_otherrec);
if (!xfs_scrub_should_check_xref(sc, &error, pcur)) if (!xchk_should_check_xref(sc, &error, pcur))
return; return;
if (!has_otherrec) { if (!has_otherrec) {
xfs_scrub_btree_xref_set_corrupt(sc, *pcur, 0); xchk_btree_xref_set_corrupt(sc, *pcur, 0);
return; return;
} }
error = xfs_alloc_get_rec(*pcur, &fbno, &flen, &has_otherrec); error = xfs_alloc_get_rec(*pcur, &fbno, &flen, &has_otherrec);
if (!xfs_scrub_should_check_xref(sc, &error, pcur)) if (!xchk_should_check_xref(sc, &error, pcur))
return; return;
if (!has_otherrec) { if (!has_otherrec) {
xfs_scrub_btree_xref_set_corrupt(sc, *pcur, 0); xchk_btree_xref_set_corrupt(sc, *pcur, 0);
return; return;
} }
if (fbno != agbno || flen != len) if (fbno != agbno || flen != len)
xfs_scrub_btree_xref_set_corrupt(sc, *pcur, 0); xchk_btree_xref_set_corrupt(sc, *pcur, 0);
} }
/* Cross-reference with the other btrees. */ /* Cross-reference with the other btrees. */
STATIC void STATIC void
xfs_scrub_allocbt_xref( xchk_allocbt_xref(
struct xfs_scrub_context *sc, struct xfs_scrub_context *sc,
xfs_agblock_t agbno, xfs_agblock_t agbno,
xfs_extlen_t len) xfs_extlen_t len)
...@@ -89,16 +89,16 @@ xfs_scrub_allocbt_xref( ...@@ -89,16 +89,16 @@ xfs_scrub_allocbt_xref(
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT) if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
return; return;
xfs_scrub_allocbt_xref_other(sc, agbno, len); xchk_allocbt_xref_other(sc, agbno, len);
xfs_scrub_xref_is_not_inode_chunk(sc, agbno, len); xchk_xref_is_not_inode_chunk(sc, agbno, len);
xfs_scrub_xref_has_no_owner(sc, agbno, len); xchk_xref_has_no_owner(sc, agbno, len);
xfs_scrub_xref_is_not_shared(sc, agbno, len); xchk_xref_is_not_shared(sc, agbno, len);
} }
/* Scrub a bnobt/cntbt record. */ /* Scrub a bnobt/cntbt record. */
STATIC int STATIC int
xfs_scrub_allocbt_rec( xchk_allocbt_rec(
struct xfs_scrub_btree *bs, struct xchk_btree *bs,
union xfs_btree_rec *rec) union xfs_btree_rec *rec)
{ {
struct xfs_mount *mp = bs->cur->bc_mp; struct xfs_mount *mp = bs->cur->bc_mp;
...@@ -113,16 +113,16 @@ xfs_scrub_allocbt_rec( ...@@ -113,16 +113,16 @@ xfs_scrub_allocbt_rec(
if (bno + len <= bno || if (bno + len <= bno ||
!xfs_verify_agbno(mp, agno, bno) || !xfs_verify_agbno(mp, agno, bno) ||
!xfs_verify_agbno(mp, agno, bno + len - 1)) !xfs_verify_agbno(mp, agno, bno + len - 1))
xfs_scrub_btree_set_corrupt(bs->sc, bs->cur, 0); xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
xfs_scrub_allocbt_xref(bs->sc, bno, len); xchk_allocbt_xref(bs->sc, bno, len);
return error; return error;
} }
/* Scrub the freespace btrees for some AG. */ /* Scrub the freespace btrees for some AG. */
STATIC int STATIC int
xfs_scrub_allocbt( xchk_allocbt(
struct xfs_scrub_context *sc, struct xfs_scrub_context *sc,
xfs_btnum_t which) xfs_btnum_t which)
{ {
...@@ -131,26 +131,26 @@ xfs_scrub_allocbt( ...@@ -131,26 +131,26 @@ xfs_scrub_allocbt(
xfs_rmap_ag_owner(&oinfo, XFS_RMAP_OWN_AG); xfs_rmap_ag_owner(&oinfo, XFS_RMAP_OWN_AG);
cur = which == XFS_BTNUM_BNO ? sc->sa.bno_cur : sc->sa.cnt_cur; cur = which == XFS_BTNUM_BNO ? sc->sa.bno_cur : sc->sa.cnt_cur;
return xfs_scrub_btree(sc, cur, xfs_scrub_allocbt_rec, &oinfo, NULL); return xchk_btree(sc, cur, xchk_allocbt_rec, &oinfo, NULL);
} }
int int
xfs_scrub_bnobt( xchk_bnobt(
struct xfs_scrub_context *sc) struct xfs_scrub_context *sc)
{ {
return xfs_scrub_allocbt(sc, XFS_BTNUM_BNO); return xchk_allocbt(sc, XFS_BTNUM_BNO);
} }
int int
xfs_scrub_cntbt( xchk_cntbt(
struct xfs_scrub_context *sc) struct xfs_scrub_context *sc)
{ {
return xfs_scrub_allocbt(sc, XFS_BTNUM_CNT); return xchk_allocbt(sc, XFS_BTNUM_CNT);
} }
/* xref check that the extent is not free */ /* xref check that the extent is not free */
void void
xfs_scrub_xref_is_used_space( xchk_xref_is_used_space(
struct xfs_scrub_context *sc, struct xfs_scrub_context *sc,
xfs_agblock_t agbno, xfs_agblock_t agbno,
xfs_extlen_t len) xfs_extlen_t len)
...@@ -158,12 +158,12 @@ xfs_scrub_xref_is_used_space( ...@@ -158,12 +158,12 @@ xfs_scrub_xref_is_used_space(
bool is_freesp; bool is_freesp;
int error; int error;
if (!sc->sa.bno_cur || xfs_scrub_skip_xref(sc->sm)) if (!sc->sa.bno_cur || xchk_skip_xref(sc->sm))
return; return;
error = xfs_alloc_has_record(sc->sa.bno_cur, agbno, len, &is_freesp); error = xfs_alloc_has_record(sc->sa.bno_cur, agbno, len, &is_freesp);
if (!xfs_scrub_should_check_xref(sc, &error, &sc->sa.bno_cur)) if (!xchk_should_check_xref(sc, &error, &sc->sa.bno_cur))
return; return;
if (is_freesp) if (is_freesp)
xfs_scrub_btree_xref_set_corrupt(sc, sc->sa.bno_cur, 0); xchk_btree_xref_set_corrupt(sc, sc->sa.bno_cur, 0);
} }
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -9,32 +9,32 @@ ...@@ -9,32 +9,32 @@
/* btree scrub */ /* btree scrub */
/* Check for btree operation errors. */ /* Check for btree operation errors. */
bool xfs_scrub_btree_process_error(struct xfs_scrub_context *sc, bool xchk_btree_process_error(struct xfs_scrub_context *sc,
struct xfs_btree_cur *cur, int level, int *error); struct xfs_btree_cur *cur, int level, int *error);
/* Check for btree xref operation errors. */ /* Check for btree xref operation errors. */
bool xfs_scrub_btree_xref_process_error(struct xfs_scrub_context *sc, bool xchk_btree_xref_process_error(struct xfs_scrub_context *sc,
struct xfs_btree_cur *cur, int level, struct xfs_btree_cur *cur, int level,
int *error); int *error);
/* Check for btree corruption. */ /* Check for btree corruption. */
void xfs_scrub_btree_set_corrupt(struct xfs_scrub_context *sc, void xchk_btree_set_corrupt(struct xfs_scrub_context *sc,
struct xfs_btree_cur *cur, int level); struct xfs_btree_cur *cur, int level);
/* Check for btree xref discrepancies. */ /* Check for btree xref discrepancies. */
void xfs_scrub_btree_xref_set_corrupt(struct xfs_scrub_context *sc, void xchk_btree_xref_set_corrupt(struct xfs_scrub_context *sc,
struct xfs_btree_cur *cur, int level); struct xfs_btree_cur *cur, int level);
struct xfs_scrub_btree; struct xchk_btree;
typedef int (*xfs_scrub_btree_rec_fn)( typedef int (*xchk_btree_rec_fn)(
struct xfs_scrub_btree *bs, struct xchk_btree *bs,
union xfs_btree_rec *rec); union xfs_btree_rec *rec);
struct xfs_scrub_btree { struct xchk_btree {
/* caller-provided scrub state */ /* caller-provided scrub state */
struct xfs_scrub_context *sc; struct xfs_scrub_context *sc;
struct xfs_btree_cur *cur; struct xfs_btree_cur *cur;
xfs_scrub_btree_rec_fn scrub_rec; xchk_btree_rec_fn scrub_rec;
struct xfs_owner_info *oinfo; struct xfs_owner_info *oinfo;
void *private; void *private;
...@@ -45,8 +45,8 @@ struct xfs_scrub_btree { ...@@ -45,8 +45,8 @@ struct xfs_scrub_btree {
bool firstkey[XFS_BTREE_MAXLEVELS]; bool firstkey[XFS_BTREE_MAXLEVELS];
struct list_head to_check; struct list_head to_check;
}; };
int xfs_scrub_btree(struct xfs_scrub_context *sc, struct xfs_btree_cur *cur, int xchk_btree(struct xfs_scrub_context *sc, struct xfs_btree_cur *cur,
xfs_scrub_btree_rec_fn scrub_fn, xchk_btree_rec_fn scrub_fn,
struct xfs_owner_info *oinfo, void *private); struct xfs_owner_info *oinfo, void *private);
#endif /* __XFS_SCRUB_BTREE_H__ */ #endif /* __XFS_SCRUB_BTREE_H__ */
This diff is collapsed.
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
* Note that we're careful not to make any judgements about *error. * Note that we're careful not to make any judgements about *error.
*/ */
static inline bool static inline bool
xfs_scrub_should_terminate( xchk_should_terminate(
struct xfs_scrub_context *sc, struct xfs_scrub_context *sc,
int *error) int *error)
{ {
...@@ -24,121 +24,121 @@ xfs_scrub_should_terminate( ...@@ -24,121 +24,121 @@ xfs_scrub_should_terminate(
return false; return false;
} }
int xfs_scrub_trans_alloc(struct xfs_scrub_context *sc, uint resblks); int xchk_trans_alloc(struct xfs_scrub_context *sc, uint resblks);
bool xfs_scrub_process_error(struct xfs_scrub_context *sc, xfs_agnumber_t agno, bool xchk_process_error(struct xfs_scrub_context *sc, xfs_agnumber_t agno,
xfs_agblock_t bno, int *error); xfs_agblock_t bno, int *error);
bool xfs_scrub_fblock_process_error(struct xfs_scrub_context *sc, int whichfork, bool xchk_fblock_process_error(struct xfs_scrub_context *sc, int whichfork,
xfs_fileoff_t offset, int *error); xfs_fileoff_t offset, int *error);
bool xfs_scrub_xref_process_error(struct xfs_scrub_context *sc, bool xchk_xref_process_error(struct xfs_scrub_context *sc,
xfs_agnumber_t agno, xfs_agblock_t bno, int *error); xfs_agnumber_t agno, xfs_agblock_t bno, int *error);
bool xfs_scrub_fblock_xref_process_error(struct xfs_scrub_context *sc, bool xchk_fblock_xref_process_error(struct xfs_scrub_context *sc,
int whichfork, xfs_fileoff_t offset, int *error); int whichfork, xfs_fileoff_t offset, int *error);
void xfs_scrub_block_set_preen(struct xfs_scrub_context *sc, void xchk_block_set_preen(struct xfs_scrub_context *sc,
struct xfs_buf *bp); struct xfs_buf *bp);
void xfs_scrub_ino_set_preen(struct xfs_scrub_context *sc, xfs_ino_t ino); void xchk_ino_set_preen(struct xfs_scrub_context *sc, xfs_ino_t ino);
void xfs_scrub_block_set_corrupt(struct xfs_scrub_context *sc, void xchk_block_set_corrupt(struct xfs_scrub_context *sc,
struct xfs_buf *bp); struct xfs_buf *bp);
void xfs_scrub_ino_set_corrupt(struct xfs_scrub_context *sc, xfs_ino_t ino); void xchk_ino_set_corrupt(struct xfs_scrub_context *sc, xfs_ino_t ino);
void xfs_scrub_fblock_set_corrupt(struct xfs_scrub_context *sc, int whichfork, void xchk_fblock_set_corrupt(struct xfs_scrub_context *sc, int whichfork,
xfs_fileoff_t offset); xfs_fileoff_t offset);
void xfs_scrub_block_xref_set_corrupt(struct xfs_scrub_context *sc, void xchk_block_xref_set_corrupt(struct xfs_scrub_context *sc,
struct xfs_buf *bp); struct xfs_buf *bp);
void xfs_scrub_ino_xref_set_corrupt(struct xfs_scrub_context *sc, void xchk_ino_xref_set_corrupt(struct xfs_scrub_context *sc,
xfs_ino_t ino); xfs_ino_t ino);
void xfs_scrub_fblock_xref_set_corrupt(struct xfs_scrub_context *sc, void xchk_fblock_xref_set_corrupt(struct xfs_scrub_context *sc,
int whichfork, xfs_fileoff_t offset); int whichfork, xfs_fileoff_t offset);
void xfs_scrub_ino_set_warning(struct xfs_scrub_context *sc, xfs_ino_t ino); void xchk_ino_set_warning(struct xfs_scrub_context *sc, xfs_ino_t ino);
void xfs_scrub_fblock_set_warning(struct xfs_scrub_context *sc, int whichfork, void xchk_fblock_set_warning(struct xfs_scrub_context *sc, int whichfork,
xfs_fileoff_t offset); xfs_fileoff_t offset);
void xfs_scrub_set_incomplete(struct xfs_scrub_context *sc); void xchk_set_incomplete(struct xfs_scrub_context *sc);
int xfs_scrub_checkpoint_log(struct xfs_mount *mp); int xchk_checkpoint_log(struct xfs_mount *mp);
/* Are we set up for a cross-referencing check? */ /* Are we set up for a cross-referencing check? */
bool xfs_scrub_should_check_xref(struct xfs_scrub_context *sc, int *error, bool xchk_should_check_xref(struct xfs_scrub_context *sc, int *error,
struct xfs_btree_cur **curpp); struct xfs_btree_cur **curpp);
/* Setup functions */ /* Setup functions */
int xfs_scrub_setup_fs(struct xfs_scrub_context *sc, struct xfs_inode *ip); int xchk_setup_fs(struct xfs_scrub_context *sc, struct xfs_inode *ip);
int xfs_scrub_setup_ag_allocbt(struct xfs_scrub_context *sc, int xchk_setup_ag_allocbt(struct xfs_scrub_context *sc,
struct xfs_inode *ip); struct xfs_inode *ip);
int xfs_scrub_setup_ag_iallocbt(struct xfs_scrub_context *sc, int xchk_setup_ag_iallocbt(struct xfs_scrub_context *sc,
struct xfs_inode *ip); struct xfs_inode *ip);
int xfs_scrub_setup_ag_rmapbt(struct xfs_scrub_context *sc, int xchk_setup_ag_rmapbt(struct xfs_scrub_context *sc,
struct xfs_inode *ip); struct xfs_inode *ip);
int xfs_scrub_setup_ag_refcountbt(struct xfs_scrub_context *sc, int xchk_setup_ag_refcountbt(struct xfs_scrub_context *sc,
struct xfs_inode *ip); struct xfs_inode *ip);
int xfs_scrub_setup_inode(struct xfs_scrub_context *sc, int xchk_setup_inode(struct xfs_scrub_context *sc,
struct xfs_inode *ip); struct xfs_inode *ip);
int xfs_scrub_setup_inode_bmap(struct xfs_scrub_context *sc, int xchk_setup_inode_bmap(struct xfs_scrub_context *sc,
struct xfs_inode *ip); struct xfs_inode *ip);
int xfs_scrub_setup_inode_bmap_data(struct xfs_scrub_context *sc, int xchk_setup_inode_bmap_data(struct xfs_scrub_context *sc,
struct xfs_inode *ip); struct xfs_inode *ip);
int xfs_scrub_setup_directory(struct xfs_scrub_context *sc, int xchk_setup_directory(struct xfs_scrub_context *sc,
struct xfs_inode *ip); struct xfs_inode *ip);
int xfs_scrub_setup_xattr(struct xfs_scrub_context *sc, int xchk_setup_xattr(struct xfs_scrub_context *sc,
struct xfs_inode *ip); struct xfs_inode *ip);
int xfs_scrub_setup_symlink(struct xfs_scrub_context *sc, int xchk_setup_symlink(struct xfs_scrub_context *sc,
struct xfs_inode *ip); struct xfs_inode *ip);
int xfs_scrub_setup_parent(struct xfs_scrub_context *sc, int xchk_setup_parent(struct xfs_scrub_context *sc,
struct xfs_inode *ip); struct xfs_inode *ip);
#ifdef CONFIG_XFS_RT #ifdef CONFIG_XFS_RT
int xfs_scrub_setup_rt(struct xfs_scrub_context *sc, struct xfs_inode *ip); int xchk_setup_rt(struct xfs_scrub_context *sc, struct xfs_inode *ip);
#else #else
static inline int static inline int
xfs_scrub_setup_rt(struct xfs_scrub_context *sc, struct xfs_inode *ip) xchk_setup_rt(struct xfs_scrub_context *sc, struct xfs_inode *ip)
{ {
return -ENOENT; return -ENOENT;
} }
#endif #endif
#ifdef CONFIG_XFS_QUOTA #ifdef CONFIG_XFS_QUOTA
int xfs_scrub_setup_quota(struct xfs_scrub_context *sc, struct xfs_inode *ip); int xchk_setup_quota(struct xfs_scrub_context *sc, struct xfs_inode *ip);
#else #else
static inline int static inline int
xfs_scrub_setup_quota(struct xfs_scrub_context *sc, struct xfs_inode *ip) xchk_setup_quota(struct xfs_scrub_context *sc, struct xfs_inode *ip)
{ {
return -ENOENT; return -ENOENT;
} }
#endif #endif
void xfs_scrub_ag_free(struct xfs_scrub_context *sc, struct xfs_scrub_ag *sa); void xchk_ag_free(struct xfs_scrub_context *sc, struct xchk_ag *sa);
int xfs_scrub_ag_init(struct xfs_scrub_context *sc, xfs_agnumber_t agno, int xchk_ag_init(struct xfs_scrub_context *sc, xfs_agnumber_t agno,
struct xfs_scrub_ag *sa); struct xchk_ag *sa);
void xfs_scrub_perag_get(struct xfs_mount *mp, struct xfs_scrub_ag *sa); void xchk_perag_get(struct xfs_mount *mp, struct xchk_ag *sa);
int xfs_scrub_ag_read_headers(struct xfs_scrub_context *sc, xfs_agnumber_t agno, int xchk_ag_read_headers(struct xfs_scrub_context *sc, xfs_agnumber_t agno,
struct xfs_buf **agi, struct xfs_buf **agf, struct xfs_buf **agi, struct xfs_buf **agf,
struct xfs_buf **agfl); struct xfs_buf **agfl);
void xfs_scrub_ag_btcur_free(struct xfs_scrub_ag *sa); void xchk_ag_btcur_free(struct xchk_ag *sa);
int xfs_scrub_ag_btcur_init(struct xfs_scrub_context *sc, int xchk_ag_btcur_init(struct xfs_scrub_context *sc,
struct xfs_scrub_ag *sa); struct xchk_ag *sa);
int xfs_scrub_count_rmap_ownedby_ag(struct xfs_scrub_context *sc, int xchk_count_rmap_ownedby_ag(struct xfs_scrub_context *sc,
struct xfs_btree_cur *cur, struct xfs_btree_cur *cur,
struct xfs_owner_info *oinfo, struct xfs_owner_info *oinfo,
xfs_filblks_t *blocks); xfs_filblks_t *blocks);
int xfs_scrub_setup_ag_btree(struct xfs_scrub_context *sc, int xchk_setup_ag_btree(struct xfs_scrub_context *sc,
struct xfs_inode *ip, bool force_log); struct xfs_inode *ip, bool force_log);
int xfs_scrub_get_inode(struct xfs_scrub_context *sc, struct xfs_inode *ip_in); int xchk_get_inode(struct xfs_scrub_context *sc, struct xfs_inode *ip_in);
int xfs_scrub_setup_inode_contents(struct xfs_scrub_context *sc, int xchk_setup_inode_contents(struct xfs_scrub_context *sc,
struct xfs_inode *ip, unsigned int resblks); struct xfs_inode *ip, unsigned int resblks);
void xfs_scrub_buffer_recheck(struct xfs_scrub_context *sc, struct xfs_buf *bp); void xchk_buffer_recheck(struct xfs_scrub_context *sc, struct xfs_buf *bp);
/* /*
* Don't bother cross-referencing if we already found corruption or cross * Don't bother cross-referencing if we already found corruption or cross
* referencing discrepancies. * referencing discrepancies.
*/ */
static inline bool xfs_scrub_skip_xref(struct xfs_scrub_metadata *sm) static inline bool xchk_skip_xref(struct xfs_scrub_metadata *sm)
{ {
return sm->sm_flags & (XFS_SCRUB_OFLAG_CORRUPT | return sm->sm_flags & (XFS_SCRUB_OFLAG_CORRUPT |
XFS_SCRUB_OFLAG_XCORRUPT); XFS_SCRUB_OFLAG_XCORRUPT);
} }
int xfs_scrub_metadata_inode_forks(struct xfs_scrub_context *sc); int xchk_metadata_inode_forks(struct xfs_scrub_context *sc);
int xfs_scrub_ilock_inverted(struct xfs_inode *ip, uint lock_mode); int xchk_ilock_inverted(struct xfs_inode *ip, uint lock_mode);
#endif /* __XFS_SCRUB_COMMON_H__ */ #endif /* __XFS_SCRUB_COMMON_H__ */
This diff is collapsed.
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
/* dir/attr btree */ /* dir/attr btree */
struct xfs_scrub_da_btree { struct xchk_da_btree {
struct xfs_da_args dargs; struct xfs_da_args dargs;
xfs_dahash_t hashes[XFS_DA_NODE_MAXDEPTH]; xfs_dahash_t hashes[XFS_DA_NODE_MAXDEPTH];
int maxrecs[XFS_DA_NODE_MAXDEPTH]; int maxrecs[XFS_DA_NODE_MAXDEPTH];
...@@ -28,18 +28,18 @@ struct xfs_scrub_da_btree { ...@@ -28,18 +28,18 @@ struct xfs_scrub_da_btree {
int tree_level; int tree_level;
}; };
typedef int (*xfs_scrub_da_btree_rec_fn)(struct xfs_scrub_da_btree *ds, typedef int (*xchk_da_btree_rec_fn)(struct xchk_da_btree *ds,
int level, void *rec); int level, void *rec);
/* Check for da btree operation errors. */ /* Check for da btree operation errors. */
bool xfs_scrub_da_process_error(struct xfs_scrub_da_btree *ds, int level, int *error); bool xchk_da_process_error(struct xchk_da_btree *ds, int level, int *error);
/* Check for da btree corruption. */ /* Check for da btree corruption. */
void xfs_scrub_da_set_corrupt(struct xfs_scrub_da_btree *ds, int level); void xchk_da_set_corrupt(struct xchk_da_btree *ds, int level);
int xfs_scrub_da_btree_hash(struct xfs_scrub_da_btree *ds, int level, int xchk_da_btree_hash(struct xchk_da_btree *ds, int level,
__be32 *hashp); __be32 *hashp);
int xfs_scrub_da_btree(struct xfs_scrub_context *sc, int whichfork, int xchk_da_btree(struct xfs_scrub_context *sc, int whichfork,
xfs_scrub_da_btree_rec_fn scrub_fn, void *private); xchk_da_btree_rec_fn scrub_fn, void *private);
#endif /* __XFS_SCRUB_DABTREE_H__ */ #endif /* __XFS_SCRUB_DABTREE_H__ */
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -27,18 +27,18 @@ ...@@ -27,18 +27,18 @@
/* Set us up to scrub parents. */ /* Set us up to scrub parents. */
int int
xfs_scrub_setup_parent( xchk_setup_parent(
struct xfs_scrub_context *sc, struct xfs_scrub_context *sc,
struct xfs_inode *ip) struct xfs_inode *ip)
{ {
return xfs_scrub_setup_inode_contents(sc, ip, 0); return xchk_setup_inode_contents(sc, ip, 0);
} }
/* Parent pointers */ /* Parent pointers */
/* Look for an entry in a parent pointing to this inode. */ /* Look for an entry in a parent pointing to this inode. */
struct xfs_scrub_parent_ctx { struct xchk_parent_ctx {
struct dir_context dc; struct dir_context dc;
xfs_ino_t ino; xfs_ino_t ino;
xfs_nlink_t nlink; xfs_nlink_t nlink;
...@@ -46,7 +46,7 @@ struct xfs_scrub_parent_ctx { ...@@ -46,7 +46,7 @@ struct xfs_scrub_parent_ctx {
/* Look for a single entry in a directory pointing to an inode. */ /* Look for a single entry in a directory pointing to an inode. */
STATIC int STATIC int
xfs_scrub_parent_actor( xchk_parent_actor(
struct dir_context *dc, struct dir_context *dc,
const char *name, const char *name,
int namelen, int namelen,
...@@ -54,9 +54,9 @@ xfs_scrub_parent_actor( ...@@ -54,9 +54,9 @@ xfs_scrub_parent_actor(
u64 ino, u64 ino,
unsigned type) unsigned type)
{ {
struct xfs_scrub_parent_ctx *spc; struct xchk_parent_ctx *spc;
spc = container_of(dc, struct xfs_scrub_parent_ctx, dc); spc = container_of(dc, struct xchk_parent_ctx, dc);
if (spc->ino == ino) if (spc->ino == ino)
spc->nlink++; spc->nlink++;
return 0; return 0;
...@@ -64,13 +64,13 @@ xfs_scrub_parent_actor( ...@@ -64,13 +64,13 @@ xfs_scrub_parent_actor(
/* Count the number of dentries in the parent dir that point to this inode. */ /* Count the number of dentries in the parent dir that point to this inode. */
STATIC int STATIC int
xfs_scrub_parent_count_parent_dentries( xchk_parent_count_parent_dentries(
struct xfs_scrub_context *sc, struct xfs_scrub_context *sc,
struct xfs_inode *parent, struct xfs_inode *parent,
xfs_nlink_t *nlink) xfs_nlink_t *nlink)
{ {
struct xfs_scrub_parent_ctx spc = { struct xchk_parent_ctx spc = {
.dc.actor = xfs_scrub_parent_actor, .dc.actor = xchk_parent_actor,
.dc.pos = 0, .dc.pos = 0,
.ino = sc->ip->i_ino, .ino = sc->ip->i_ino,
.nlink = 0, .nlink = 0,
...@@ -120,7 +120,7 @@ xfs_scrub_parent_count_parent_dentries( ...@@ -120,7 +120,7 @@ xfs_scrub_parent_count_parent_dentries(
* entry pointing back to the inode being scrubbed. * entry pointing back to the inode being scrubbed.
*/ */
STATIC int STATIC int
xfs_scrub_parent_validate( xchk_parent_validate(
struct xfs_scrub_context *sc, struct xfs_scrub_context *sc,
xfs_ino_t dnum, xfs_ino_t dnum,
bool *try_again) bool *try_again)
...@@ -138,7 +138,7 @@ xfs_scrub_parent_validate( ...@@ -138,7 +138,7 @@ xfs_scrub_parent_validate(
/* '..' must not point to ourselves. */ /* '..' must not point to ourselves. */
if (sc->ip->i_ino == dnum) { if (sc->ip->i_ino == dnum) {
xfs_scrub_fblock_set_corrupt(sc, XFS_DATA_FORK, 0); xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
goto out; goto out;
} }
...@@ -165,13 +165,13 @@ xfs_scrub_parent_validate( ...@@ -165,13 +165,13 @@ xfs_scrub_parent_validate(
error = xfs_iget(mp, sc->tp, dnum, XFS_IGET_UNTRUSTED, 0, &dp); error = xfs_iget(mp, sc->tp, dnum, XFS_IGET_UNTRUSTED, 0, &dp);
if (error == -EINVAL) { if (error == -EINVAL) {
error = -EFSCORRUPTED; error = -EFSCORRUPTED;
xfs_scrub_fblock_process_error(sc, XFS_DATA_FORK, 0, &error); xchk_fblock_process_error(sc, XFS_DATA_FORK, 0, &error);
goto out; goto out;
} }
if (!xfs_scrub_fblock_xref_process_error(sc, XFS_DATA_FORK, 0, &error)) if (!xchk_fblock_xref_process_error(sc, XFS_DATA_FORK, 0, &error))
goto out; goto out;
if (dp == sc->ip || !S_ISDIR(VFS_I(dp)->i_mode)) { if (dp == sc->ip || !S_ISDIR(VFS_I(dp)->i_mode)) {
xfs_scrub_fblock_set_corrupt(sc, XFS_DATA_FORK, 0); xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
goto out_rele; goto out_rele;
} }
...@@ -183,12 +183,12 @@ xfs_scrub_parent_validate( ...@@ -183,12 +183,12 @@ xfs_scrub_parent_validate(
* the child inodes. * the child inodes.
*/ */
if (xfs_ilock_nowait(dp, XFS_IOLOCK_SHARED)) { if (xfs_ilock_nowait(dp, XFS_IOLOCK_SHARED)) {
error = xfs_scrub_parent_count_parent_dentries(sc, dp, &nlink); error = xchk_parent_count_parent_dentries(sc, dp, &nlink);
if (!xfs_scrub_fblock_xref_process_error(sc, XFS_DATA_FORK, 0, if (!xchk_fblock_xref_process_error(sc, XFS_DATA_FORK, 0,
&error)) &error))
goto out_unlock; goto out_unlock;
if (nlink != expected_nlink) if (nlink != expected_nlink)
xfs_scrub_fblock_set_corrupt(sc, XFS_DATA_FORK, 0); xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
goto out_unlock; goto out_unlock;
} }
...@@ -200,18 +200,18 @@ xfs_scrub_parent_validate( ...@@ -200,18 +200,18 @@ xfs_scrub_parent_validate(
*/ */
xfs_iunlock(sc->ip, sc->ilock_flags); xfs_iunlock(sc->ip, sc->ilock_flags);
sc->ilock_flags = 0; sc->ilock_flags = 0;
error = xfs_scrub_ilock_inverted(dp, XFS_IOLOCK_SHARED); error = xchk_ilock_inverted(dp, XFS_IOLOCK_SHARED);
if (error) if (error)
goto out_rele; goto out_rele;
/* Go looking for our dentry. */ /* Go looking for our dentry. */
error = xfs_scrub_parent_count_parent_dentries(sc, dp, &nlink); error = xchk_parent_count_parent_dentries(sc, dp, &nlink);
if (!xfs_scrub_fblock_xref_process_error(sc, XFS_DATA_FORK, 0, &error)) if (!xchk_fblock_xref_process_error(sc, XFS_DATA_FORK, 0, &error))
goto out_unlock; goto out_unlock;
/* Drop the parent lock, relock this inode. */ /* Drop the parent lock, relock this inode. */
xfs_iunlock(dp, XFS_IOLOCK_SHARED); xfs_iunlock(dp, XFS_IOLOCK_SHARED);
error = xfs_scrub_ilock_inverted(sc->ip, XFS_IOLOCK_EXCL); error = xchk_ilock_inverted(sc->ip, XFS_IOLOCK_EXCL);
if (error) if (error)
goto out_rele; goto out_rele;
sc->ilock_flags = XFS_IOLOCK_EXCL; sc->ilock_flags = XFS_IOLOCK_EXCL;
...@@ -225,7 +225,7 @@ xfs_scrub_parent_validate( ...@@ -225,7 +225,7 @@ xfs_scrub_parent_validate(
/* Look up '..' to see if the inode changed. */ /* Look up '..' to see if the inode changed. */
error = xfs_dir_lookup(sc->tp, sc->ip, &xfs_name_dotdot, &dnum, NULL); error = xfs_dir_lookup(sc->tp, sc->ip, &xfs_name_dotdot, &dnum, NULL);
if (!xfs_scrub_fblock_process_error(sc, XFS_DATA_FORK, 0, &error)) if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, 0, &error))
goto out_rele; goto out_rele;
/* Drat, parent changed. Try again! */ /* Drat, parent changed. Try again! */
...@@ -241,7 +241,7 @@ xfs_scrub_parent_validate( ...@@ -241,7 +241,7 @@ xfs_scrub_parent_validate(
* for us in the parent. * for us in the parent.
*/ */
if (nlink != expected_nlink) if (nlink != expected_nlink)
xfs_scrub_fblock_set_corrupt(sc, XFS_DATA_FORK, 0); xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
return error; return error;
out_unlock: out_unlock:
...@@ -254,7 +254,7 @@ xfs_scrub_parent_validate( ...@@ -254,7 +254,7 @@ xfs_scrub_parent_validate(
/* Scrub a parent pointer. */ /* Scrub a parent pointer. */
int int
xfs_scrub_parent( xchk_parent(
struct xfs_scrub_context *sc) struct xfs_scrub_context *sc)
{ {
struct xfs_mount *mp = sc->mp; struct xfs_mount *mp = sc->mp;
...@@ -272,7 +272,7 @@ xfs_scrub_parent( ...@@ -272,7 +272,7 @@ xfs_scrub_parent(
/* We're not a special inode, are we? */ /* We're not a special inode, are we? */
if (!xfs_verify_dir_ino(mp, sc->ip->i_ino)) { if (!xfs_verify_dir_ino(mp, sc->ip->i_ino)) {
xfs_scrub_fblock_set_corrupt(sc, XFS_DATA_FORK, 0); xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
goto out; goto out;
} }
...@@ -288,10 +288,10 @@ xfs_scrub_parent( ...@@ -288,10 +288,10 @@ xfs_scrub_parent(
/* Look up '..' */ /* Look up '..' */
error = xfs_dir_lookup(sc->tp, sc->ip, &xfs_name_dotdot, &dnum, NULL); error = xfs_dir_lookup(sc->tp, sc->ip, &xfs_name_dotdot, &dnum, NULL);
if (!xfs_scrub_fblock_process_error(sc, XFS_DATA_FORK, 0, &error)) if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, 0, &error))
goto out; goto out;
if (!xfs_verify_dir_ino(mp, dnum)) { if (!xfs_verify_dir_ino(mp, dnum)) {
xfs_scrub_fblock_set_corrupt(sc, XFS_DATA_FORK, 0); xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
goto out; goto out;
} }
...@@ -299,12 +299,12 @@ xfs_scrub_parent( ...@@ -299,12 +299,12 @@ xfs_scrub_parent(
if (sc->ip == mp->m_rootip) { if (sc->ip == mp->m_rootip) {
if (sc->ip->i_ino != mp->m_sb.sb_rootino || if (sc->ip->i_ino != mp->m_sb.sb_rootino ||
sc->ip->i_ino != dnum) sc->ip->i_ino != dnum)
xfs_scrub_fblock_set_corrupt(sc, XFS_DATA_FORK, 0); xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
goto out; goto out;
} }
do { do {
error = xfs_scrub_parent_validate(sc, dnum, &try_again); error = xchk_parent_validate(sc, dnum, &try_again);
if (error) if (error)
goto out; goto out;
} while (try_again && ++tries < 20); } while (try_again && ++tries < 20);
...@@ -314,7 +314,7 @@ xfs_scrub_parent( ...@@ -314,7 +314,7 @@ xfs_scrub_parent(
* incomplete. Userspace can decide if it wants to try again. * incomplete. Userspace can decide if it wants to try again.
*/ */
if (try_again && tries == 20) if (try_again && tries == 20)
xfs_scrub_set_incomplete(sc); xchk_set_incomplete(sc);
out: out:
/* /*
* If we failed to lock the parent inode even after a retry, just mark * If we failed to lock the parent inode even after a retry, just mark
...@@ -322,7 +322,7 @@ xfs_scrub_parent( ...@@ -322,7 +322,7 @@ xfs_scrub_parent(
*/ */
if (sc->try_harder && error == -EDEADLOCK) { if (sc->try_harder && error == -EDEADLOCK) {
error = 0; error = 0;
xfs_scrub_set_incomplete(sc); xchk_set_incomplete(sc);
} }
return error; return error;
} }
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
/* Convert a scrub type code to a DQ flag, or return 0 if error. */ /* Convert a scrub type code to a DQ flag, or return 0 if error. */
static inline uint static inline uint
xfs_scrub_quota_to_dqtype( xchk_quota_to_dqtype(
struct xfs_scrub_context *sc) struct xfs_scrub_context *sc)
{ {
switch (sc->sm->sm_type) { switch (sc->sm->sm_type) {
...@@ -47,7 +47,7 @@ xfs_scrub_quota_to_dqtype( ...@@ -47,7 +47,7 @@ xfs_scrub_quota_to_dqtype(
/* Set us up to scrub a quota. */ /* Set us up to scrub a quota. */
int int
xfs_scrub_setup_quota( xchk_setup_quota(
struct xfs_scrub_context *sc, struct xfs_scrub_context *sc,
struct xfs_inode *ip) struct xfs_inode *ip)
{ {
...@@ -57,14 +57,14 @@ xfs_scrub_setup_quota( ...@@ -57,14 +57,14 @@ xfs_scrub_setup_quota(
if (!XFS_IS_QUOTA_RUNNING(sc->mp) || !XFS_IS_QUOTA_ON(sc->mp)) if (!XFS_IS_QUOTA_RUNNING(sc->mp) || !XFS_IS_QUOTA_ON(sc->mp))
return -ENOENT; return -ENOENT;
dqtype = xfs_scrub_quota_to_dqtype(sc); dqtype = xchk_quota_to_dqtype(sc);
if (dqtype == 0) if (dqtype == 0)
return -EINVAL; return -EINVAL;
sc->has_quotaofflock = true; sc->has_quotaofflock = true;
mutex_lock(&sc->mp->m_quotainfo->qi_quotaofflock); mutex_lock(&sc->mp->m_quotainfo->qi_quotaofflock);
if (!xfs_this_quota_on(sc->mp, dqtype)) if (!xfs_this_quota_on(sc->mp, dqtype))
return -ENOENT; return -ENOENT;
error = xfs_scrub_setup_fs(sc, ip); error = xchk_setup_fs(sc, ip);
if (error) if (error)
return error; return error;
sc->ip = xfs_quota_inode(sc->mp, dqtype); sc->ip = xfs_quota_inode(sc->mp, dqtype);
...@@ -75,19 +75,19 @@ xfs_scrub_setup_quota( ...@@ -75,19 +75,19 @@ xfs_scrub_setup_quota(
/* Quotas. */ /* Quotas. */
struct xfs_scrub_quota_info { struct xchk_quota_info {
struct xfs_scrub_context *sc; struct xfs_scrub_context *sc;
xfs_dqid_t last_id; xfs_dqid_t last_id;
}; };
/* Scrub the fields in an individual quota item. */ /* Scrub the fields in an individual quota item. */
STATIC int STATIC int
xfs_scrub_quota_item( xchk_quota_item(
struct xfs_dquot *dq, struct xfs_dquot *dq,
uint dqtype, uint dqtype,
void *priv) void *priv)
{ {
struct xfs_scrub_quota_info *sqi = priv; struct xchk_quota_info *sqi = priv;
struct xfs_scrub_context *sc = sqi->sc; struct xfs_scrub_context *sc = sqi->sc;
struct xfs_mount *mp = sc->mp; struct xfs_mount *mp = sc->mp;
struct xfs_disk_dquot *d = &dq->q_core; struct xfs_disk_dquot *d = &dq->q_core;
...@@ -111,16 +111,16 @@ xfs_scrub_quota_item( ...@@ -111,16 +111,16 @@ xfs_scrub_quota_item(
*/ */
offset = id / qi->qi_dqperchunk; offset = id / qi->qi_dqperchunk;
if (id && id <= sqi->last_id) if (id && id <= sqi->last_id)
xfs_scrub_fblock_set_corrupt(sc, XFS_DATA_FORK, offset); xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
sqi->last_id = id; sqi->last_id = id;
/* Did we get the dquot type we wanted? */ /* Did we get the dquot type we wanted? */
if (dqtype != (d->d_flags & XFS_DQ_ALLTYPES)) if (dqtype != (d->d_flags & XFS_DQ_ALLTYPES))
xfs_scrub_fblock_set_corrupt(sc, XFS_DATA_FORK, offset); xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
if (d->d_pad0 != cpu_to_be32(0) || d->d_pad != cpu_to_be16(0)) if (d->d_pad0 != cpu_to_be32(0) || d->d_pad != cpu_to_be16(0))
xfs_scrub_fblock_set_corrupt(sc, XFS_DATA_FORK, offset); xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
/* Check the limits. */ /* Check the limits. */
bhard = be64_to_cpu(d->d_blk_hardlimit); bhard = be64_to_cpu(d->d_blk_hardlimit);
...@@ -140,19 +140,19 @@ xfs_scrub_quota_item( ...@@ -140,19 +140,19 @@ xfs_scrub_quota_item(
* the hard limit. * the hard limit.
*/ */
if (bhard > mp->m_sb.sb_dblocks) if (bhard > mp->m_sb.sb_dblocks)
xfs_scrub_fblock_set_warning(sc, XFS_DATA_FORK, offset); xchk_fblock_set_warning(sc, XFS_DATA_FORK, offset);
if (bsoft > bhard) if (bsoft > bhard)
xfs_scrub_fblock_set_corrupt(sc, XFS_DATA_FORK, offset); xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
if (ihard > mp->m_maxicount) if (ihard > mp->m_maxicount)
xfs_scrub_fblock_set_warning(sc, XFS_DATA_FORK, offset); xchk_fblock_set_warning(sc, XFS_DATA_FORK, offset);
if (isoft > ihard) if (isoft > ihard)
xfs_scrub_fblock_set_corrupt(sc, XFS_DATA_FORK, offset); xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
if (rhard > mp->m_sb.sb_rblocks) if (rhard > mp->m_sb.sb_rblocks)
xfs_scrub_fblock_set_warning(sc, XFS_DATA_FORK, offset); xchk_fblock_set_warning(sc, XFS_DATA_FORK, offset);
if (rsoft > rhard) if (rsoft > rhard)
xfs_scrub_fblock_set_corrupt(sc, XFS_DATA_FORK, offset); xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
/* Check the resource counts. */ /* Check the resource counts. */
bcount = be64_to_cpu(d->d_bcount); bcount = be64_to_cpu(d->d_bcount);
...@@ -167,15 +167,15 @@ xfs_scrub_quota_item( ...@@ -167,15 +167,15 @@ xfs_scrub_quota_item(
*/ */
if (xfs_sb_version_hasreflink(&mp->m_sb)) { if (xfs_sb_version_hasreflink(&mp->m_sb)) {
if (mp->m_sb.sb_dblocks < bcount) if (mp->m_sb.sb_dblocks < bcount)
xfs_scrub_fblock_set_warning(sc, XFS_DATA_FORK, xchk_fblock_set_warning(sc, XFS_DATA_FORK,
offset); offset);
} else { } else {
if (mp->m_sb.sb_dblocks < bcount) if (mp->m_sb.sb_dblocks < bcount)
xfs_scrub_fblock_set_corrupt(sc, XFS_DATA_FORK, xchk_fblock_set_corrupt(sc, XFS_DATA_FORK,
offset); offset);
} }
if (icount > fs_icount || rcount > mp->m_sb.sb_rblocks) if (icount > fs_icount || rcount > mp->m_sb.sb_rblocks)
xfs_scrub_fblock_set_corrupt(sc, XFS_DATA_FORK, offset); xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
/* /*
* We can violate the hard limits if the admin suddenly sets a * We can violate the hard limits if the admin suddenly sets a
...@@ -183,18 +183,18 @@ xfs_scrub_quota_item( ...@@ -183,18 +183,18 @@ xfs_scrub_quota_item(
* admin review. * admin review.
*/ */
if (id != 0 && bhard != 0 && bcount > bhard) if (id != 0 && bhard != 0 && bcount > bhard)
xfs_scrub_fblock_set_warning(sc, XFS_DATA_FORK, offset); xchk_fblock_set_warning(sc, XFS_DATA_FORK, offset);
if (id != 0 && ihard != 0 && icount > ihard) if (id != 0 && ihard != 0 && icount > ihard)
xfs_scrub_fblock_set_warning(sc, XFS_DATA_FORK, offset); xchk_fblock_set_warning(sc, XFS_DATA_FORK, offset);
if (id != 0 && rhard != 0 && rcount > rhard) if (id != 0 && rhard != 0 && rcount > rhard)
xfs_scrub_fblock_set_warning(sc, XFS_DATA_FORK, offset); xchk_fblock_set_warning(sc, XFS_DATA_FORK, offset);
return 0; return 0;
} }
/* Check the quota's data fork. */ /* Check the quota's data fork. */
STATIC int STATIC int
xfs_scrub_quota_data_fork( xchk_quota_data_fork(
struct xfs_scrub_context *sc) struct xfs_scrub_context *sc)
{ {
struct xfs_bmbt_irec irec = { 0 }; struct xfs_bmbt_irec irec = { 0 };
...@@ -205,7 +205,7 @@ xfs_scrub_quota_data_fork( ...@@ -205,7 +205,7 @@ xfs_scrub_quota_data_fork(
int error = 0; int error = 0;
/* Invoke the fork scrubber. */ /* Invoke the fork scrubber. */
error = xfs_scrub_metadata_inode_forks(sc); error = xchk_metadata_inode_forks(sc);
if (error || (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)) if (error || (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT))
return error; return error;
...@@ -213,7 +213,7 @@ xfs_scrub_quota_data_fork( ...@@ -213,7 +213,7 @@ xfs_scrub_quota_data_fork(
max_dqid_off = ((xfs_dqid_t)-1) / qi->qi_dqperchunk; max_dqid_off = ((xfs_dqid_t)-1) / qi->qi_dqperchunk;
ifp = XFS_IFORK_PTR(sc->ip, XFS_DATA_FORK); ifp = XFS_IFORK_PTR(sc->ip, XFS_DATA_FORK);
for_each_xfs_iext(ifp, &icur, &irec) { for_each_xfs_iext(ifp, &icur, &irec) {
if (xfs_scrub_should_terminate(sc, &error)) if (xchk_should_terminate(sc, &error))
break; break;
/* /*
* delalloc extents or blocks mapped above the highest * delalloc extents or blocks mapped above the highest
...@@ -222,7 +222,7 @@ xfs_scrub_quota_data_fork( ...@@ -222,7 +222,7 @@ xfs_scrub_quota_data_fork(
if (isnullstartblock(irec.br_startblock) || if (isnullstartblock(irec.br_startblock) ||
irec.br_startoff > max_dqid_off || irec.br_startoff > max_dqid_off ||
irec.br_startoff + irec.br_blockcount - 1 > max_dqid_off) { irec.br_startoff + irec.br_blockcount - 1 > max_dqid_off) {
xfs_scrub_fblock_set_corrupt(sc, XFS_DATA_FORK, xchk_fblock_set_corrupt(sc, XFS_DATA_FORK,
irec.br_startoff); irec.br_startoff);
break; break;
} }
...@@ -233,19 +233,19 @@ xfs_scrub_quota_data_fork( ...@@ -233,19 +233,19 @@ xfs_scrub_quota_data_fork(
/* Scrub all of a quota type's items. */ /* Scrub all of a quota type's items. */
int int
xfs_scrub_quota( xchk_quota(
struct xfs_scrub_context *sc) struct xfs_scrub_context *sc)
{ {
struct xfs_scrub_quota_info sqi; struct xchk_quota_info sqi;
struct xfs_mount *mp = sc->mp; struct xfs_mount *mp = sc->mp;
struct xfs_quotainfo *qi = mp->m_quotainfo; struct xfs_quotainfo *qi = mp->m_quotainfo;
uint dqtype; uint dqtype;
int error = 0; int error = 0;
dqtype = xfs_scrub_quota_to_dqtype(sc); dqtype = xchk_quota_to_dqtype(sc);
/* Look for problem extents. */ /* Look for problem extents. */
error = xfs_scrub_quota_data_fork(sc); error = xchk_quota_data_fork(sc);
if (error) if (error)
goto out; goto out;
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT) if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
...@@ -260,10 +260,10 @@ xfs_scrub_quota( ...@@ -260,10 +260,10 @@ xfs_scrub_quota(
sc->ilock_flags = 0; sc->ilock_flags = 0;
sqi.sc = sc; sqi.sc = sc;
sqi.last_id = 0; sqi.last_id = 0;
error = xfs_qm_dqiterate(mp, dqtype, xfs_scrub_quota_item, &sqi); error = xfs_qm_dqiterate(mp, dqtype, xchk_quota_item, &sqi);
sc->ilock_flags = XFS_ILOCK_EXCL; sc->ilock_flags = XFS_ILOCK_EXCL;
xfs_ilock(sc->ip, sc->ilock_flags); xfs_ilock(sc->ip, sc->ilock_flags);
if (!xfs_scrub_fblock_process_error(sc, XFS_DATA_FORK, if (!xchk_fblock_process_error(sc, XFS_DATA_FORK,
sqi.last_id * qi->qi_dqperchunk, &error)) sqi.last_id * qi->qi_dqperchunk, &error))
goto out; goto out;
......
This diff is collapsed.
...@@ -50,7 +50,7 @@ xfs_repair_attempt( ...@@ -50,7 +50,7 @@ xfs_repair_attempt(
trace_xfs_repair_attempt(ip, sc->sm, error); trace_xfs_repair_attempt(ip, sc->sm, error);
xfs_scrub_ag_btcur_free(&sc->sa); xchk_ag_btcur_free(&sc->sa);
/* Repair whatever's broken. */ /* Repair whatever's broken. */
ASSERT(sc->ops->repair); ASSERT(sc->ops->repair);
...@@ -110,7 +110,7 @@ xfs_repair_probe( ...@@ -110,7 +110,7 @@ xfs_repair_probe(
{ {
int error = 0; int error = 0;
if (xfs_scrub_should_terminate(sc, &error)) if (xchk_should_terminate(sc, &error))
return error; return error;
return 0; return 0;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment