diff options
Diffstat (limited to 'fs/xfs/scrub')
-rw-r--r-- | fs/xfs/scrub/agheader.c | 32 | ||||
-rw-r--r-- | fs/xfs/scrub/agheader_repair.c | 2 | ||||
-rw-r--r-- | fs/xfs/scrub/alloc.c | 14 | ||||
-rw-r--r-- | fs/xfs/scrub/attr.c | 10 | ||||
-rw-r--r-- | fs/xfs/scrub/bmap.c | 22 | ||||
-rw-r--r-- | fs/xfs/scrub/btree.c | 14 | ||||
-rw-r--r-- | fs/xfs/scrub/btree.h | 12 | ||||
-rw-r--r-- | fs/xfs/scrub/common.c | 62 | ||||
-rw-r--r-- | fs/xfs/scrub/common.h | 88 | ||||
-rw-r--r-- | fs/xfs/scrub/dabtree.c | 6 | ||||
-rw-r--r-- | fs/xfs/scrub/dabtree.h | 4 | ||||
-rw-r--r-- | fs/xfs/scrub/dir.c | 18 | ||||
-rw-r--r-- | fs/xfs/scrub/ialloc.c | 22 | ||||
-rw-r--r-- | fs/xfs/scrub/inode.c | 22 | ||||
-rw-r--r-- | fs/xfs/scrub/parent.c | 8 | ||||
-rw-r--r-- | fs/xfs/scrub/quota.c | 12 | ||||
-rw-r--r-- | fs/xfs/scrub/refcount.c | 16 | ||||
-rw-r--r-- | fs/xfs/scrub/repair.c | 36 | ||||
-rw-r--r-- | fs/xfs/scrub/repair.h | 38 | ||||
-rw-r--r-- | fs/xfs/scrub/rmap.c | 16 | ||||
-rw-r--r-- | fs/xfs/scrub/rtbitmap.c | 10 | ||||
-rw-r--r-- | fs/xfs/scrub/scrub.c | 10 | ||||
-rw-r--r-- | fs/xfs/scrub/scrub.h | 78 | ||||
-rw-r--r-- | fs/xfs/scrub/symlink.c | 4 | ||||
-rw-r--r-- | fs/xfs/scrub/trace.h | 32 |
25 files changed, 294 insertions, 294 deletions
diff --git a/fs/xfs/scrub/agheader.c b/fs/xfs/scrub/agheader.c index c0625ec16d63..14ba4189ae8f 100644 --- a/fs/xfs/scrub/agheader.c +++ b/fs/xfs/scrub/agheader.c @@ -29,7 +29,7 @@ /* Cross-reference with the other btrees. */ STATIC void xchk_superblock_xref( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_buf *bp) { struct xfs_owner_info oinfo; @@ -66,7 +66,7 @@ xchk_superblock_xref( */ int xchk_superblock( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xfs_mount *mp = sc->mp; struct xfs_buf *bp; @@ -365,7 +365,7 @@ xchk_agf_record_bno_lengths( /* Check agf_freeblks */ static inline void xchk_agf_xref_freeblks( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xfs_agf *agf = XFS_BUF_TO_AGF(sc->sa.agf_bp); xfs_extlen_t blocks = 0; @@ -385,7 +385,7 @@ xchk_agf_xref_freeblks( /* Cross reference the AGF with the cntbt (freespace by length btree) */ static inline void xchk_agf_xref_cntbt( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xfs_agf *agf = XFS_BUF_TO_AGF(sc->sa.agf_bp); xfs_agblock_t agbno; @@ -417,7 +417,7 @@ xchk_agf_xref_cntbt( /* Check the btree block counts in the AGF against the btrees. */ STATIC void xchk_agf_xref_btreeblks( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xfs_agf *agf = XFS_BUF_TO_AGF(sc->sa.agf_bp); struct xfs_mount *mp = sc->mp; @@ -463,7 +463,7 @@ xchk_agf_xref_btreeblks( /* Check agf_refcount_blocks against tree size */ static inline void xchk_agf_xref_refcblks( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xfs_agf *agf = XFS_BUF_TO_AGF(sc->sa.agf_bp); xfs_agblock_t blocks; @@ -482,7 +482,7 @@ xchk_agf_xref_refcblks( /* Cross-reference with the other btrees. */ STATIC void xchk_agf_xref( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xfs_owner_info oinfo; struct xfs_mount *mp = sc->mp; @@ -514,7 +514,7 @@ xchk_agf_xref( /* Scrub the AGF. */ int xchk_agf( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xfs_mount *mp = sc->mp; struct xfs_agf *agf; @@ -602,13 +602,13 @@ struct xchk_agfl_info { unsigned int sz_entries; unsigned int nr_entries; xfs_agblock_t *entries; - struct xfs_scrub_context *sc; + struct xfs_scrub *sc; }; /* Cross-reference with the other btrees. */ STATIC void xchk_agfl_block_xref( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_agblock_t agbno, struct xfs_owner_info *oinfo) { @@ -629,7 +629,7 @@ xchk_agfl_block( void *priv) { struct xchk_agfl_info *sai = priv; - struct xfs_scrub_context *sc = sai->sc; + struct xfs_scrub *sc = sai->sc; xfs_agnumber_t agno = sc->sa.agno; if (xfs_verify_agbno(mp, agno, agbno) && @@ -660,7 +660,7 @@ xchk_agblock_cmp( /* Cross-reference with the other btrees. */ STATIC void xchk_agfl_xref( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xfs_owner_info oinfo; struct xfs_mount *mp = sc->mp; @@ -691,7 +691,7 @@ xchk_agfl_xref( /* Scrub the AGFL. */ int xchk_agfl( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xchk_agfl_info sai; struct xfs_agf *agf; @@ -768,7 +768,7 @@ out: /* Check agi_count/agi_freecount */ static inline void xchk_agi_xref_icounts( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xfs_agi *agi = XFS_BUF_TO_AGI(sc->sa.agi_bp); xfs_agino_t icount; @@ -789,7 +789,7 @@ xchk_agi_xref_icounts( /* Cross-reference with the other btrees. */ STATIC void xchk_agi_xref( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xfs_owner_info oinfo; struct xfs_mount *mp = sc->mp; @@ -818,7 +818,7 @@ xchk_agi_xref( /* Scrub the AGI. */ int xchk_agi( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xfs_mount *mp = sc->mp; struct xfs_agi *agi; diff --git a/fs/xfs/scrub/agheader_repair.c b/fs/xfs/scrub/agheader_repair.c index 631940f3ca4d..2457968482f8 100644 --- a/fs/xfs/scrub/agheader_repair.c +++ b/fs/xfs/scrub/agheader_repair.c @@ -29,7 +29,7 @@ /* Repair the superblock. */ int xrep_superblock( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xfs_mount *mp = sc->mp; struct xfs_buf *bp; diff --git a/fs/xfs/scrub/alloc.c b/fs/xfs/scrub/alloc.c index 1f6e3a6a1fdd..653d80b3aa39 100644 --- a/fs/xfs/scrub/alloc.c +++ b/fs/xfs/scrub/alloc.c @@ -29,7 +29,7 @@ */ int xchk_setup_ag_allocbt( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_inode *ip) { return xchk_setup_ag_btree(sc, ip, false); @@ -42,7 +42,7 @@ xchk_setup_ag_allocbt( */ STATIC void xchk_allocbt_xref_other( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_agblock_t agbno, xfs_extlen_t len) { @@ -82,7 +82,7 @@ xchk_allocbt_xref_other( /* Cross-reference with the other btrees. */ STATIC void xchk_allocbt_xref( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_agblock_t agbno, xfs_extlen_t len) { @@ -123,7 +123,7 @@ xchk_allocbt_rec( /* Scrub the freespace btrees for some AG. */ STATIC int xchk_allocbt( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_btnum_t which) { struct xfs_owner_info oinfo; @@ -136,14 +136,14 @@ xchk_allocbt( int xchk_bnobt( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { return xchk_allocbt(sc, XFS_BTNUM_BNO); } int xchk_cntbt( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { return xchk_allocbt(sc, XFS_BTNUM_CNT); } @@ -151,7 +151,7 @@ xchk_cntbt( /* xref check that the extent is not free */ void xchk_xref_is_used_space( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_agblock_t agbno, xfs_extlen_t len) { diff --git a/fs/xfs/scrub/attr.c b/fs/xfs/scrub/attr.c index 0068bebddf3e..6650fb3010b6 100644 --- a/fs/xfs/scrub/attr.c +++ b/fs/xfs/scrub/attr.c @@ -33,7 +33,7 @@ /* Set us up to scrub an inode's extended attributes. */ int xchk_setup_xattr( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_inode *ip) { size_t sz; @@ -57,7 +57,7 @@ xchk_setup_xattr( struct xchk_xattr { struct xfs_attr_list_context context; - struct xfs_scrub_context *sc; + struct xfs_scrub *sc; }; /* @@ -127,7 +127,7 @@ fail_xref: */ STATIC bool xchk_xattr_set_map( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, unsigned long *map, unsigned int start, unsigned int len) @@ -155,7 +155,7 @@ xchk_xattr_set_map( */ STATIC bool xchk_xattr_check_freemap( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, unsigned long *map, struct xfs_attr3_icleaf_hdr *leafhdr) { @@ -405,7 +405,7 @@ out: /* Scrub the extended attribute metadata. */ int xchk_xattr( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xchk_xattr sx; struct attrlist_cursor_kern cursor = { 0 }; diff --git a/fs/xfs/scrub/bmap.c b/fs/xfs/scrub/bmap.c index 19cfbd3910a2..0e5166232b15 100644 --- a/fs/xfs/scrub/bmap.c +++ b/fs/xfs/scrub/bmap.c @@ -34,7 +34,7 @@ /* Set us up with an inode's bmap. */ int xchk_setup_inode_bmap( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_inode *ip) { int error; @@ -79,7 +79,7 @@ out: */ struct xchk_bmap_info { - struct xfs_scrub_context *sc; + struct xfs_scrub *sc; xfs_fileoff_t lastoff; bool is_rt; bool is_shared; @@ -391,7 +391,7 @@ xchk_bmapbt_rec( /* Scan the btree records. */ STATIC int xchk_bmap_btree( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, int whichfork, struct xchk_bmap_info *info) { @@ -409,7 +409,7 @@ xchk_bmap_btree( } struct xchk_bmap_check_rmap_info { - struct xfs_scrub_context *sc; + struct xfs_scrub *sc; int whichfork; struct xfs_iext_cursor icur; }; @@ -424,7 +424,7 @@ xchk_bmap_check_rmap( struct xfs_bmbt_irec irec; struct xchk_bmap_check_rmap_info *sbcri = priv; struct xfs_ifork *ifp; - struct xfs_scrub_context *sc = sbcri->sc; + struct xfs_scrub *sc = sbcri->sc; bool have_map; /* Is this even the right fork? */ @@ -488,7 +488,7 @@ out: /* Make sure each rmap has a corresponding bmbt entry. */ STATIC int xchk_bmap_check_ag_rmaps( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, int whichfork, xfs_agnumber_t agno) { @@ -522,7 +522,7 @@ out_agf: /* Make sure each rmap has a corresponding bmbt entry. */ STATIC int xchk_bmap_check_rmaps( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, int whichfork) { loff_t size; @@ -579,7 +579,7 @@ xchk_bmap_check_rmaps( */ STATIC int xchk_bmap( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, int whichfork) { struct xfs_bmbt_irec irec; @@ -694,7 +694,7 @@ out: /* Scrub an inode's data fork. */ int xchk_bmap_data( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { return xchk_bmap(sc, XFS_DATA_FORK); } @@ -702,7 +702,7 @@ xchk_bmap_data( /* Scrub an inode's attr fork. */ int xchk_bmap_attr( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { return xchk_bmap(sc, XFS_ATTR_FORK); } @@ -710,7 +710,7 @@ xchk_bmap_attr( /* Scrub an inode's CoW fork. */ int xchk_bmap_cow( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { if (!xfs_is_reflink_inode(sc->ip)) return -ENOENT; diff --git a/fs/xfs/scrub/btree.c b/fs/xfs/scrub/btree.c index 30fe9a147959..c4e1dce8c5b3 100644 --- a/fs/xfs/scrub/btree.c +++ b/fs/xfs/scrub/btree.c @@ -30,7 +30,7 @@ */ static bool __xchk_btree_process_error( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_btree_cur *cur, int level, int *error, @@ -65,7 +65,7 @@ __xchk_btree_process_error( bool xchk_btree_process_error( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_btree_cur *cur, int level, int *error) @@ -76,7 +76,7 @@ xchk_btree_process_error( bool xchk_btree_xref_process_error( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_btree_cur *cur, int level, int *error) @@ -88,7 +88,7 @@ xchk_btree_xref_process_error( /* Record btree block corruption. */ static void __xchk_btree_set_corrupt( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_btree_cur *cur, int level, __u32 errflag, @@ -106,7 +106,7 @@ __xchk_btree_set_corrupt( void xchk_btree_set_corrupt( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_btree_cur *cur, int level) { @@ -116,7 +116,7 @@ xchk_btree_set_corrupt( void xchk_btree_xref_set_corrupt( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_btree_cur *cur, int level) { @@ -583,7 +583,7 @@ xchk_btree_block_keys( */ int xchk_btree( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_btree_cur *cur, xchk_btree_rec_fn scrub_fn, struct xfs_owner_info *oinfo, diff --git a/fs/xfs/scrub/btree.h b/fs/xfs/scrub/btree.h index 598ac04a6c3e..a0b74b515b9b 100644 --- a/fs/xfs/scrub/btree.h +++ b/fs/xfs/scrub/btree.h @@ -9,20 +9,20 @@ /* btree scrub */ /* Check for btree operation errors. */ -bool xchk_btree_process_error(struct xfs_scrub_context *sc, +bool xchk_btree_process_error(struct xfs_scrub *sc, struct xfs_btree_cur *cur, int level, int *error); /* Check for btree xref operation errors. */ -bool xchk_btree_xref_process_error(struct xfs_scrub_context *sc, +bool xchk_btree_xref_process_error(struct xfs_scrub *sc, struct xfs_btree_cur *cur, int level, int *error); /* Check for btree corruption. */ -void xchk_btree_set_corrupt(struct xfs_scrub_context *sc, +void xchk_btree_set_corrupt(struct xfs_scrub *sc, struct xfs_btree_cur *cur, int level); /* Check for btree xref discrepancies. */ -void xchk_btree_xref_set_corrupt(struct xfs_scrub_context *sc, +void xchk_btree_xref_set_corrupt(struct xfs_scrub *sc, struct xfs_btree_cur *cur, int level); struct xchk_btree; @@ -32,7 +32,7 @@ typedef int (*xchk_btree_rec_fn)( struct xchk_btree { /* caller-provided scrub state */ - struct xfs_scrub_context *sc; + struct xfs_scrub *sc; struct xfs_btree_cur *cur; xchk_btree_rec_fn scrub_rec; struct xfs_owner_info *oinfo; @@ -45,7 +45,7 @@ struct xchk_btree { bool firstkey[XFS_BTREE_MAXLEVELS]; struct list_head to_check; }; -int xchk_btree(struct xfs_scrub_context *sc, struct xfs_btree_cur *cur, +int xchk_btree(struct xfs_scrub *sc, struct xfs_btree_cur *cur, xchk_btree_rec_fn scrub_fn, struct xfs_owner_info *oinfo, void *private); diff --git a/fs/xfs/scrub/common.c b/fs/xfs/scrub/common.c index d40bba9e7596..ed9195116556 100644 --- a/fs/xfs/scrub/common.c +++ b/fs/xfs/scrub/common.c @@ -69,7 +69,7 @@ /* Check for operational errors. */ static bool __xchk_process_error( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_agnumber_t agno, xfs_agblock_t bno, int *error, @@ -99,7 +99,7 @@ __xchk_process_error( bool xchk_process_error( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_agnumber_t agno, xfs_agblock_t bno, int *error) @@ -110,7 +110,7 @@ xchk_process_error( bool xchk_xref_process_error( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_agnumber_t agno, xfs_agblock_t bno, int *error) @@ -122,7 +122,7 @@ xchk_xref_process_error( /* Check for operational errors for a file offset. */ static bool __xchk_fblock_process_error( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, int whichfork, xfs_fileoff_t offset, int *error, @@ -152,7 +152,7 @@ __xchk_fblock_process_error( bool xchk_fblock_process_error( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, int whichfork, xfs_fileoff_t offset, int *error) @@ -163,7 +163,7 @@ xchk_fblock_process_error( bool xchk_fblock_xref_process_error( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, int whichfork, xfs_fileoff_t offset, int *error) @@ -187,7 +187,7 @@ xchk_fblock_xref_process_error( /* Record a block which could be optimized. */ void xchk_block_set_preen( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_buf *bp) { sc->sm->sm_flags |= XFS_SCRUB_OFLAG_PREEN; @@ -201,7 +201,7 @@ xchk_block_set_preen( */ void xchk_ino_set_preen( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_ino_t ino) { sc->sm->sm_flags |= XFS_SCRUB_OFLAG_PREEN; @@ -211,7 +211,7 @@ xchk_ino_set_preen( /* Record a corrupt block. */ void xchk_block_set_corrupt( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_buf *bp) { sc->sm->sm_flags |= XFS_SCRUB_OFLAG_CORRUPT; @@ -221,7 +221,7 @@ xchk_block_set_corrupt( /* Record a corruption while cross-referencing. */ void xchk_block_xref_set_corrupt( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_buf *bp) { sc->sm->sm_flags |= XFS_SCRUB_OFLAG_XCORRUPT; @@ -235,7 +235,7 @@ xchk_block_xref_set_corrupt( */ void xchk_ino_set_corrupt( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_ino_t ino) { sc->sm->sm_flags |= XFS_SCRUB_OFLAG_CORRUPT; @@ -245,7 +245,7 @@ xchk_ino_set_corrupt( /* Record a corruption while cross-referencing with an inode. */ void xchk_ino_xref_set_corrupt( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_ino_t ino) { sc->sm->sm_flags |= XFS_SCRUB_OFLAG_XCORRUPT; @@ -255,7 +255,7 @@ xchk_ino_xref_set_corrupt( /* Record corruption in a block indexed by a file fork. */ void xchk_fblock_set_corrupt( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, int whichfork, xfs_fileoff_t offset) { @@ -266,7 +266,7 @@ xchk_fblock_set_corrupt( /* Record a corruption while cross-referencing a fork block. */ void xchk_fblock_xref_set_corrupt( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, int whichfork, xfs_fileoff_t offset) { @@ -280,7 +280,7 @@ xchk_fblock_xref_set_corrupt( */ void xchk_ino_set_warning( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_ino_t ino) { sc->sm->sm_flags |= XFS_SCRUB_OFLAG_WARNING; @@ -290,7 +290,7 @@ xchk_ino_set_warning( /* Warn about a block indexed by a file fork that needs review. */ void xchk_fblock_set_warning( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, int whichfork, xfs_fileoff_t offset) { @@ -301,7 +301,7 @@ xchk_fblock_set_warning( /* Signal an incomplete scrub. */ void xchk_set_incomplete( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { sc->sm->sm_flags |= XFS_SCRUB_OFLAG_INCOMPLETE; trace_xchk_incomplete(sc, __return_address); @@ -345,7 +345,7 @@ xchk_count_rmap_ownedby_irec( */ int xchk_count_rmap_ownedby_ag( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_btree_cur *cur, struct xfs_owner_info *oinfo, xfs_filblks_t *blocks) @@ -371,7 +371,7 @@ xchk_count_rmap_ownedby_ag( /* Decide if we want to return an AG header read failure. */ static inline bool want_ag_read_header_failure( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, unsigned int type) { /* Return all AG header read failures when scanning btrees. */ @@ -398,7 +398,7 @@ want_ag_read_header_failure( */ int xchk_ag_read_headers( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_agnumber_t agno, struct xfs_buf **agi, struct xfs_buf **agf, @@ -452,7 +452,7 @@ xchk_ag_btcur_free( /* Initialize all the btree cursors for an AG. */ int xchk_ag_btcur_init( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xchk_ag *sa) { struct xfs_mount *mp = sc->mp; @@ -512,7 +512,7 @@ err: /* Release the AG header context and btree cursors. */ void xchk_ag_free( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xchk_ag *sa) { xchk_ag_btcur_free(sa); @@ -544,7 +544,7 @@ xchk_ag_free( */ int xchk_ag_init( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_agnumber_t agno, struct xchk_ag *sa) { @@ -586,7 +586,7 @@ xchk_perag_get( */ int xchk_trans_alloc( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, uint resblks) { if (sc->sm->sm_flags & XFS_SCRUB_IFLAG_REPAIR) @@ -599,7 +599,7 @@ xchk_trans_alloc( /* Set us up with a transaction and an empty context. */ int xchk_setup_fs( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_inode *ip) { uint resblks; @@ -611,7 +611,7 @@ xchk_setup_fs( /* Set us up with AG headers and btree cursors. */ int xchk_setup_ag_btree( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_inode *ip, bool force_log) { @@ -658,7 +658,7 @@ xchk_checkpoint_log( */ int xchk_get_inode( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_inode *ip_in) { struct xfs_imap imap; @@ -722,7 +722,7 @@ xchk_get_inode( /* Set us up to scrub a file's contents. */ int xchk_setup_inode_contents( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_inode *ip, unsigned int resblks) { @@ -753,7 +753,7 @@ out: */ bool xchk_should_check_xref( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, int *error, struct xfs_btree_cur **curpp) { @@ -788,7 +788,7 @@ xchk_should_check_xref( /* Run the structure verifiers on in-memory buffers to detect bad memory. */ void xchk_buffer_recheck( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_buf *bp) { xfs_failaddr_t fa; @@ -814,7 +814,7 @@ xchk_buffer_recheck( */ int xchk_metadata_inode_forks( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { __u32 smtype; bool shared; diff --git a/fs/xfs/scrub/common.h b/fs/xfs/scrub/common.h index 5881cb2ecc26..c321230d32dc 100644 --- a/fs/xfs/scrub/common.h +++ b/fs/xfs/scrub/common.h @@ -13,7 +13,7 @@ */ static inline bool xchk_should_terminate( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, int *error) { if (fatal_signal_pending(current)) { @@ -24,109 +24,109 @@ xchk_should_terminate( return false; } -int xchk_trans_alloc(struct xfs_scrub_context *sc, uint resblks); -bool xchk_process_error(struct xfs_scrub_context *sc, xfs_agnumber_t agno, +int xchk_trans_alloc(struct xfs_scrub *sc, uint resblks); +bool xchk_process_error(struct xfs_scrub *sc, xfs_agnumber_t agno, xfs_agblock_t bno, int *error); -bool xchk_fblock_process_error(struct xfs_scrub_context *sc, int whichfork, +bool xchk_fblock_process_error(struct xfs_scrub *sc, int whichfork, xfs_fileoff_t offset, int *error); -bool xchk_xref_process_error(struct xfs_scrub_context *sc, +bool xchk_xref_process_error(struct xfs_scrub *sc, xfs_agnumber_t agno, xfs_agblock_t bno, int *error); -bool xchk_fblock_xref_process_error(struct xfs_scrub_context *sc, +bool xchk_fblock_xref_process_error(struct xfs_scrub *sc, int whichfork, xfs_fileoff_t offset, int *error); -void xchk_block_set_preen(struct xfs_scrub_context *sc, +void xchk_block_set_preen(struct xfs_scrub *sc, struct xfs_buf *bp); -void xchk_ino_set_preen(struct xfs_scrub_context *sc, xfs_ino_t ino); +void xchk_ino_set_preen(struct xfs_scrub *sc, xfs_ino_t ino); -void xchk_block_set_corrupt(struct xfs_scrub_context *sc, +void xchk_block_set_corrupt(struct xfs_scrub *sc, struct xfs_buf *bp); -void xchk_ino_set_corrupt(struct xfs_scrub_context *sc, xfs_ino_t ino); -void xchk_fblock_set_corrupt(struct xfs_scrub_context *sc, int whichfork, +void xchk_ino_set_corrupt(struct xfs_scrub *sc, xfs_ino_t ino); +void xchk_fblock_set_corrupt(struct xfs_scrub *sc, int whichfork, xfs_fileoff_t offset); -void xchk_block_xref_set_corrupt(struct xfs_scrub_context *sc, +void xchk_block_xref_set_corrupt(struct xfs_scrub *sc, struct xfs_buf *bp); -void xchk_ino_xref_set_corrupt(struct xfs_scrub_context *sc, +void xchk_ino_xref_set_corrupt(struct xfs_scrub *sc, xfs_ino_t ino); -void xchk_fblock_xref_set_corrupt(struct xfs_scrub_context *sc, +void xchk_fblock_xref_set_corrupt(struct xfs_scrub *sc, int whichfork, xfs_fileoff_t offset); -void xchk_ino_set_warning(struct xfs_scrub_context *sc, xfs_ino_t ino); -void xchk_fblock_set_warning(struct xfs_scrub_context *sc, int whichfork, +void xchk_ino_set_warning(struct xfs_scrub *sc, xfs_ino_t ino); +void xchk_fblock_set_warning(struct xfs_scrub *sc, int whichfork, xfs_fileoff_t offset); -void xchk_set_incomplete(struct xfs_scrub_context *sc); +void xchk_set_incomplete(struct xfs_scrub *sc); int xchk_checkpoint_log(struct xfs_mount *mp); /* Are we set up for a cross-referencing check? */ -bool xchk_should_check_xref(struct xfs_scrub_context *sc, int *error, +bool xchk_should_check_xref(struct xfs_scrub *sc, int *error, struct xfs_btree_cur **curpp); /* Setup functions */ -int xchk_setup_fs(struct xfs_scrub_context *sc, struct xfs_inode *ip); -int xchk_setup_ag_allocbt(struct xfs_scrub_context *sc, +int xchk_setup_fs(struct xfs_scrub *sc, struct xfs_inode *ip); +int xchk_setup_ag_allocbt(struct xfs_scrub *sc, struct xfs_inode *ip); -int xchk_setup_ag_iallocbt(struct xfs_scrub_context *sc, +int xchk_setup_ag_iallocbt(struct xfs_scrub *sc, struct xfs_inode *ip); -int xchk_setup_ag_rmapbt(struct xfs_scrub_context *sc, +int xchk_setup_ag_rmapbt(struct xfs_scrub *sc, struct xfs_inode *ip); -int xchk_setup_ag_refcountbt(struct xfs_scrub_context *sc, +int xchk_setup_ag_refcountbt(struct xfs_scrub *sc, struct xfs_inode *ip); -int xchk_setup_inode(struct xfs_scrub_context *sc, +int xchk_setup_inode(struct xfs_scrub *sc, struct xfs_inode *ip); -int xchk_setup_inode_bmap(struct xfs_scrub_context *sc, +int xchk_setup_inode_bmap(struct xfs_scrub *sc, struct xfs_inode *ip); -int xchk_setup_inode_bmap_data(struct xfs_scrub_context *sc, +int xchk_setup_inode_bmap_data(struct xfs_scrub *sc, struct xfs_inode *ip); -int xchk_setup_directory(struct xfs_scrub_context *sc, +int xchk_setup_directory(struct xfs_scrub *sc, struct xfs_inode *ip); -int xchk_setup_xattr(struct xfs_scrub_context *sc, +int xchk_setup_xattr(struct xfs_scrub *sc, struct xfs_inode *ip); -int xchk_setup_symlink(struct xfs_scrub_context *sc, +int xchk_setup_symlink(struct xfs_scrub *sc, struct xfs_inode *ip); -int xchk_setup_parent(struct xfs_scrub_context *sc, +int xchk_setup_parent(struct xfs_scrub *sc, struct xfs_inode *ip); #ifdef CONFIG_XFS_RT -int xchk_setup_rt(struct xfs_scrub_context *sc, struct xfs_inode *ip); +int xchk_setup_rt(struct xfs_scrub *sc, struct xfs_inode *ip); #else static inline int -xchk_setup_rt(struct xfs_scrub_context *sc, struct xfs_inode *ip) +xchk_setup_rt(struct xfs_scrub *sc, struct xfs_inode *ip) { return -ENOENT; } #endif #ifdef CONFIG_XFS_QUOTA -int xchk_setup_quota(struct xfs_scrub_context *sc, struct xfs_inode *ip); +int xchk_setup_quota(struct xfs_scrub *sc, struct xfs_inode *ip); #else static inline int -xchk_setup_quota(struct xfs_scrub_context *sc, struct xfs_inode *ip) +xchk_setup_quota(struct xfs_scrub *sc, struct xfs_inode *ip) { return -ENOENT; } #endif -void xchk_ag_free(struct xfs_scrub_context *sc, struct xchk_ag *sa); -int xchk_ag_init(struct xfs_scrub_context *sc, xfs_agnumber_t agno, +void xchk_ag_free(struct xfs_scrub *sc, struct xchk_ag *sa); +int xchk_ag_init(struct xfs_scrub *sc, xfs_agnumber_t agno, struct xchk_ag *sa); void xchk_perag_get(struct xfs_mount *mp, struct xchk_ag *sa); -int xchk_ag_read_headers(struct xfs_scrub_context *sc, xfs_agnumber_t agno, +int xchk_ag_read_headers(struct xfs_scrub *sc, xfs_agnumber_t agno, struct xfs_buf **agi, struct xfs_buf **agf, struct xfs_buf **agfl); void xchk_ag_btcur_free(struct xchk_ag *sa); -int xchk_ag_btcur_init(struct xfs_scrub_context *sc, +int xchk_ag_btcur_init(struct xfs_scrub *sc, struct xchk_ag *sa); -int xchk_count_rmap_ownedby_ag(struct xfs_scrub_context *sc, +int xchk_count_rmap_ownedby_ag(struct xfs_scrub *sc, struct xfs_btree_cur *cur, struct xfs_owner_info *oinfo, xfs_filblks_t *blocks); -int xchk_setup_ag_btree(struct xfs_scrub_context *sc, +int xchk_setup_ag_btree(struct xfs_scrub *sc, struct xfs_inode *ip, bool force_log); -int xchk_get_inode(struct xfs_scrub_context *sc, struct xfs_inode *ip_in); -int xchk_setup_inode_contents(struct xfs_scrub_context *sc, +int xchk_get_inode(struct xfs_scrub *sc, struct xfs_inode *ip_in); +int xchk_setup_inode_contents(struct xfs_scrub *sc, struct xfs_inode *ip, unsigned int resblks); -void xchk_buffer_recheck(struct xfs_scrub_context *sc, struct xfs_buf *bp); +void xchk_buffer_recheck(struct xfs_scrub *sc, struct xfs_buf *bp); /* * Don't bother cross-referencing if we already found corruption or cross @@ -138,7 +138,7 @@ static inline bool xchk_skip_xref(struct xfs_scrub_metadata *sm) XFS_SCRUB_OFLAG_XCORRUPT); } -int xchk_metadata_inode_forks(struct xfs_scrub_context *sc); +int xchk_metadata_inode_forks(struct xfs_scrub *sc); int xchk_ilock_inverted(struct xfs_inode *ip, uint lock_mode); #endif /* __XFS_SCRUB_COMMON_H__ */ diff --git a/fs/xfs/scrub/dabtree.c b/fs/xfs/scrub/dabtree.c index fee80f6ddfd7..7fc12d540ea6 100644 --- a/fs/xfs/scrub/dabtree.c +++ b/fs/xfs/scrub/dabtree.c @@ -40,7 +40,7 @@ xchk_da_process_error( int level, int *error) { - struct xfs_scrub_context *sc = ds->sc; + struct xfs_scrub *sc = ds->sc; if (*error == 0) return true; @@ -75,7 +75,7 @@ xchk_da_set_corrupt( struct xchk_da_btree *ds, int level) { - struct xfs_scrub_context *sc = ds->sc; + struct xfs_scrub *sc = ds->sc; sc->sm->sm_flags |= XFS_SCRUB_OFLAG_CORRUPT; @@ -474,7 +474,7 @@ out_nobuf: /* Visit all nodes and leaves of a da btree. */ int xchk_da_btree( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, int whichfork, xchk_da_btree_rec_fn scrub_fn, void *private) diff --git a/fs/xfs/scrub/dabtree.h b/fs/xfs/scrub/dabtree.h index 80e4af0e2589..a15c03389e8f 100644 --- a/fs/xfs/scrub/dabtree.h +++ b/fs/xfs/scrub/dabtree.h @@ -13,7 +13,7 @@ struct xchk_da_btree { xfs_dahash_t hashes[XFS_DA_NODE_MAXDEPTH]; int maxrecs[XFS_DA_NODE_MAXDEPTH]; struct xfs_da_state *state; - struct xfs_scrub_context *sc; + struct xfs_scrub *sc; void *private; /* @@ -39,7 +39,7 @@ void xchk_da_set_corrupt(struct xchk_da_btree *ds, int level); int xchk_da_btree_hash(struct xchk_da_btree *ds, int level, __be32 *hashp); -int xchk_da_btree(struct xfs_scrub_context *sc, int whichfork, +int xchk_da_btree(struct xfs_scrub *sc, int whichfork, xchk_da_btree_rec_fn scrub_fn, void *private); #endif /* __XFS_SCRUB_DABTREE_H__ */ diff --git a/fs/xfs/scrub/dir.c b/fs/xfs/scrub/dir.c index 2ac07bb73478..194a3ef69a9f 100644 --- a/fs/xfs/scrub/dir.c +++ b/fs/xfs/scrub/dir.c @@ -32,7 +32,7 @@ /* Set us up to scrub directories. */ int xchk_setup_directory( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_inode *ip) { return xchk_setup_inode_contents(sc, ip, 0); @@ -46,7 +46,7 @@ struct xchk_dir_ctx { /* VFS fill-directory iterator */ struct dir_context dir_iter; - struct xfs_scrub_context *sc; + struct xfs_scrub *sc; }; /* Check that an inode's mode matches a given DT_ type. */ @@ -289,7 +289,7 @@ out: */ STATIC void xchk_directory_check_free_entry( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_dablk_t lblk, struct xfs_dir2_data_free *bf, struct xfs_dir2_data_unused *dup) @@ -314,7 +314,7 @@ xchk_directory_check_free_entry( /* Check free space info in a directory data block. */ STATIC int xchk_directory_data_bestfree( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_dablk_t lblk, bool is_block) { @@ -455,7 +455,7 @@ out: */ STATIC void xchk_directory_check_freesp( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_dablk_t lblk, struct xfs_buf *dbp, unsigned int len) @@ -474,7 +474,7 @@ xchk_directory_check_freesp( /* Check free space info in a directory leaf1 block. */ STATIC int xchk_directory_leaf1_bestfree( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_da_args *args, xfs_dablk_t lblk) { @@ -572,7 +572,7 @@ out: /* Check free space info in a directory freespace block. */ STATIC int xchk_directory_free_bestfree( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_da_args *args, xfs_dablk_t lblk) { @@ -626,7 +626,7 @@ out: /* Check free space information in directories. */ STATIC int xchk_directory_blocks( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xfs_bmbt_irec got; struct xfs_da_args args; @@ -770,7 +770,7 @@ out: /* Scrub a whole directory. */ int xchk_directory( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xchk_dir_ctx sdc = { .dir_iter.actor = xchk_dir_actor, diff --git a/fs/xfs/scrub/ialloc.c b/fs/xfs/scrub/ialloc.c index 69d652b7299c..6df8eba9f52b 100644 --- a/fs/xfs/scrub/ialloc.c +++ b/fs/xfs/scrub/ialloc.c @@ -36,7 +36,7 @@ */ int xchk_setup_ag_iallocbt( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_inode *ip) { return xchk_setup_ag_btree(sc, ip, sc->try_harder); @@ -51,7 +51,7 @@ xchk_setup_ag_iallocbt( */ static inline void xchk_iallocbt_chunk_xref_other( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_inobt_rec_incore *irec, xfs_agino_t agino) { @@ -76,7 +76,7 @@ xchk_iallocbt_chunk_xref_other( /* Cross-reference with the other btrees. */ STATIC void xchk_iallocbt_chunk_xref( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_inobt_rec_incore *irec, xfs_agino_t agino, xfs_agblock_t agbno, @@ -363,7 +363,7 @@ out: */ STATIC void xchk_iallocbt_xref_rmap_btreeblks( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, int which) { struct xfs_owner_info oinfo; @@ -403,7 +403,7 @@ xchk_iallocbt_xref_rmap_btreeblks( */ STATIC void xchk_iallocbt_xref_rmap_inodes( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, int which, xfs_filblks_t inode_blocks) { @@ -427,7 +427,7 @@ xchk_iallocbt_xref_rmap_inodes( /* Scrub the inode btrees for some AG. */ STATIC int xchk_iallocbt( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_btnum_t which) { struct xfs_btree_cur *cur; @@ -459,14 +459,14 @@ xchk_iallocbt( int xchk_inobt( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { return xchk_iallocbt(sc, XFS_BTNUM_INO); } int xchk_finobt( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { return xchk_iallocbt(sc, XFS_BTNUM_FINO); } @@ -474,7 +474,7 @@ xchk_finobt( /* See if an inode btree has (or doesn't have) an inode chunk record. */ static inline void xchk_xref_inode_check( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_agblock_t agbno, xfs_extlen_t len, struct xfs_btree_cur **icur, @@ -496,7 +496,7 @@ xchk_xref_inode_check( /* xref check that the extent is not covered by inodes */ void xchk_xref_is_not_inode_chunk( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_agblock_t agbno, xfs_extlen_t len) { @@ -507,7 +507,7 @@ xchk_xref_is_not_inode_chunk( /* xref check that the extent is covered by inodes */ void xchk_xref_is_inode_chunk( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_agblock_t agbno, xfs_extlen_t len) { diff --git a/fs/xfs/scrub/inode.c b/fs/xfs/scrub/inode.c index d85fbec39e52..6cc027983c13 100644 --- a/fs/xfs/scrub/inode.c +++ b/fs/xfs/scrub/inode.c @@ -38,7 +38,7 @@ */ int xchk_setup_inode( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_inode *ip) { int error; @@ -77,7 +77,7 @@ out: /* Validate di_extsize hint. */ STATIC void xchk_inode_extsize( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_dinode *dip, xfs_ino_t ino, uint16_t mode, @@ -99,7 +99,7 @@ xchk_inode_extsize( */ STATIC void xchk_inode_cowextsize( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_dinode *dip, xfs_ino_t ino, uint16_t mode, @@ -118,7 +118,7 @@ xchk_inode_cowextsize( /* Make sure the di_flags make sense for the inode. */ STATIC void xchk_inode_flags( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_dinode *dip, xfs_ino_t ino, uint16_t mode, @@ -163,7 +163,7 @@ bad: /* Make sure the di_flags2 make sense for the inode. */ STATIC void xchk_inode_flags2( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_dinode *dip, xfs_ino_t ino, uint16_t mode, @@ -206,7 +206,7 @@ bad: /* Scrub all the ondisk inode fields. */ STATIC void xchk_dinode( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_dinode *dip, xfs_ino_t ino) { @@ -426,7 +426,7 @@ xchk_dinode( */ static void xchk_inode_xref_finobt( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_ino_t ino) { struct xfs_inobt_rec_incore rec; @@ -469,7 +469,7 @@ xchk_inode_xref_finobt( /* Cross reference the inode fields with the forks. */ STATIC void xchk_inode_xref_bmap( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_dinode *dip) { xfs_extnum_t nextents; @@ -503,7 +503,7 @@ xchk_inode_xref_bmap( /* Cross-reference with the other btrees. */ STATIC void xchk_inode_xref( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_ino_t ino, struct xfs_dinode *dip) { @@ -540,7 +540,7 @@ xchk_inode_xref( */ static void xchk_inode_check_reflink_iflag( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_ino_t ino) { struct xfs_mount *mp = sc->mp; @@ -564,7 +564,7 @@ xchk_inode_check_reflink_iflag( /* Scrub an inode. */ int xchk_inode( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xfs_dinode di; int error = 0; diff --git a/fs/xfs/scrub/parent.c b/fs/xfs/scrub/parent.c index 0a78d8411f23..808459ad0c35 100644 --- a/fs/xfs/scrub/parent.c +++ b/fs/xfs/scrub/parent.c @@ -28,7 +28,7 @@ /* Set us up to scrub parents. */ int xchk_setup_parent( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_inode *ip) { return xchk_setup_inode_contents(sc, ip, 0); @@ -65,7 +65,7 @@ xchk_parent_actor( /* Count the number of dentries in the parent dir that point to this inode. */ STATIC int xchk_parent_count_parent_dentries( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_inode *parent, xfs_nlink_t *nlink) { @@ -121,7 +121,7 @@ out: */ STATIC int xchk_parent_validate( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_ino_t dnum, bool *try_again) { @@ -255,7 +255,7 @@ out: /* Scrub a parent pointer. */ int xchk_parent( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xfs_mount *mp = sc->mp; xfs_ino_t dnum; diff --git a/fs/xfs/scrub/quota.c b/fs/xfs/scrub/quota.c index d1b52dd7efcd..309ebeecfa5d 100644 --- a/fs/xfs/scrub/quota.c +++ b/fs/xfs/scrub/quota.c @@ -31,7 +31,7 @@ /* Convert a scrub type code to a DQ flag, or return 0 if error. */ static inline uint xchk_quota_to_dqtype( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { switch (sc->sm->sm_type) { case XFS_SCRUB_TYPE_UQUOTA: @@ -48,7 +48,7 @@ xchk_quota_to_dqtype( /* Set us up to scrub a quota. */ int xchk_setup_quota( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_inode *ip) { uint dqtype; @@ -76,7 +76,7 @@ xchk_setup_quota( /* Quotas. */ struct xchk_quota_info { - struct xfs_scrub_context *sc; + struct xfs_scrub *sc; xfs_dqid_t last_id; }; @@ -88,7 +88,7 @@ xchk_quota_item( void *priv) { struct xchk_quota_info *sqi = priv; - struct xfs_scrub_context *sc = sqi->sc; + struct xfs_scrub *sc = sqi->sc; struct xfs_mount *mp = sc->mp; struct xfs_disk_dquot *d = &dq->q_core; struct xfs_quotainfo *qi = mp->m_quotainfo; @@ -195,7 +195,7 @@ xchk_quota_item( /* Check the quota's data fork. */ STATIC int xchk_quota_data_fork( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xfs_bmbt_irec irec = { 0 }; struct xfs_iext_cursor icur; @@ -234,7 +234,7 @@ xchk_quota_data_fork( /* Scrub all of a quota type's items. */ int xchk_quota( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xchk_quota_info sqi; struct xfs_mount *mp = sc->mp; diff --git a/fs/xfs/scrub/refcount.c b/fs/xfs/scrub/refcount.c index 274febc49b23..c1162d408987 100644 --- a/fs/xfs/scrub/refcount.c +++ b/fs/xfs/scrub/refcount.c @@ -29,7 +29,7 @@ */ int xchk_setup_ag_refcountbt( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_inode *ip) { return xchk_setup_ag_btree(sc, ip, false); @@ -79,7 +79,7 @@ struct xchk_refcnt_frag { }; struct xchk_refcnt_check { - struct xfs_scrub_context *sc; + struct xfs_scrub *sc; struct list_head fragments; /* refcount extent we're examining */ @@ -278,7 +278,7 @@ done: /* Use the rmap entries covering this extent to verify the refcount. */ STATIC void xchk_refcountbt_xref_rmap( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_agblock_t bno, xfs_extlen_t len, xfs_nlink_t refcount) @@ -325,7 +325,7 @@ out_free: /* Cross-reference with the other btrees. */ STATIC void xchk_refcountbt_xref( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_agblock_t agbno, xfs_extlen_t len, xfs_nlink_t refcount) @@ -382,7 +382,7 @@ xchk_refcountbt_rec( /* Make sure we have as many refc blocks as the rmap says. */ STATIC void xchk_refcount_xref_rmap( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_owner_info *oinfo, xfs_filblks_t cow_blocks) { @@ -417,7 +417,7 @@ xchk_refcount_xref_rmap( /* Scrub the refcount btree for some AG. */ int xchk_refcountbt( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xfs_owner_info oinfo; xfs_agblock_t cow_blocks = 0; @@ -437,7 +437,7 @@ xchk_refcountbt( /* xref check that a cow staging extent is marked in the refcountbt. */ void xchk_xref_is_cow_staging( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_agblock_t agbno, xfs_extlen_t len) { @@ -483,7 +483,7 @@ xchk_xref_is_cow_staging( */ void xchk_xref_is_not_shared( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_agblock_t agbno, xfs_extlen_t len) { diff --git a/fs/xfs/scrub/repair.c b/fs/xfs/scrub/repair.c index 7e6a56a5f59d..29debd5649ac 100644 --- a/fs/xfs/scrub/repair.c +++ b/fs/xfs/scrub/repair.c @@ -43,7 +43,7 @@ int xrep_attempt( struct xfs_inode *ip, - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, bool *fixed) { int error = 0; @@ -106,7 +106,7 @@ xrep_failure( */ int xrep_probe( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { int error = 0; @@ -122,7 +122,7 @@ xrep_probe( */ int xrep_roll_ag_trans( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { int error; @@ -179,7 +179,7 @@ xrep_ag_has_space( */ xfs_extlen_t xrep_calc_ag_resblks( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xfs_mount *mp = sc->mp; struct xfs_scrub_metadata *sm = sc->sm; @@ -279,7 +279,7 @@ xrep_calc_ag_resblks( /* Allocate a block in an AG. */ int xrep_alloc_ag_block( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_owner_info *oinfo, xfs_fsblock_t *fsbno, enum xfs_ag_resv_type resv) @@ -330,7 +330,7 @@ xrep_alloc_ag_block( /* Initialize a new AG btree root block with zero entries. */ int xrep_init_btblock( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_fsblock_t fsb, struct xfs_buf **bpp, xfs_btnum_t btnum, @@ -385,7 +385,7 @@ xrep_init_btblock( /* Collect a dead btree extent for later disposal. */ int xrep_collect_btree_extent( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xrep_extent_list *exlist, xfs_fsblock_t fsbno, xfs_extlen_t len) @@ -415,7 +415,7 @@ xrep_collect_btree_extent( */ void xrep_cancel_btree_extents( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xrep_extent_list *exlist) { struct xrep_extent *rex; @@ -463,7 +463,7 @@ xrep_btree_extent_cmp( #define RIGHT_ALIGNED (1 << 1) int xrep_subtract_extents( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xrep_extent_list *exlist, struct xrep_extent_list *sublist) { @@ -620,7 +620,7 @@ out: */ int xrep_invalidate_blocks( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xrep_extent_list *exlist) { struct xrep_extent *rex; @@ -658,7 +658,7 @@ xrep_invalidate_blocks( /* Ensure the freelist is the correct size. */ int xrep_fix_freelist( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, bool can_shrink) { struct xfs_alloc_arg args = {0}; @@ -678,7 +678,7 @@ xrep_fix_freelist( */ STATIC int xrep_put_freelist( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_agblock_t agbno) { struct xfs_owner_info oinfo; @@ -714,7 +714,7 @@ xrep_put_freelist( /* Dispose of a single metadata block. */ STATIC int xrep_dispose_btree_block( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_fsblock_t fsbno, struct xfs_owner_info *oinfo, enum xfs_ag_resv_type resv) @@ -788,7 +788,7 @@ out_free: /* Dispose of btree blocks from an old per-AG btree. */ int xrep_reap_btree_extents( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xrep_extent_list *exlist, struct xfs_owner_info *oinfo, enum xfs_ag_resv_type type) @@ -851,7 +851,7 @@ out: */ struct xrep_findroot { - struct xfs_scrub_context *sc; + struct xfs_scrub *sc; struct xfs_buf *agfl_bp; struct xfs_agf *agf; struct xrep_find_ag_btree *btree_info; @@ -981,7 +981,7 @@ xrep_findroot_rmap( /* Find the roots of the per-AG btrees described in btree_info. */ int xrep_find_ag_btree_roots( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_buf *agf_bp, struct xrep_find_ag_btree *btree_info, struct xfs_buf *agfl_bp) @@ -1016,7 +1016,7 @@ xrep_find_ag_btree_roots( /* Force a quotacheck the next time we mount. */ void xrep_force_quotacheck( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, uint dqtype) { uint flag; @@ -1044,7 +1044,7 @@ xrep_force_quotacheck( */ int xrep_ino_dqattach( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { int error; diff --git a/fs/xfs/scrub/repair.h b/fs/xfs/scrub/repair.h index 60d81294797b..677f4b73b5ec 100644 --- a/fs/xfs/scrub/repair.h +++ b/fs/xfs/scrub/repair.h @@ -6,7 +6,7 @@ #ifndef __XFS_SCRUB_REPAIR_H__ #define __XFS_SCRUB_REPAIR_H__ -static inline int xrep_notsupported(struct xfs_scrub_context *sc) +static inline int xrep_notsupported(struct xfs_scrub *sc) { return -EOPNOTSUPP; } @@ -15,17 +15,17 @@ static inline int xrep_notsupported(struct xfs_scrub_context *sc) /* Repair helpers */ -int xrep_attempt(struct xfs_inode *ip, struct xfs_scrub_context *sc, +int xrep_attempt(struct xfs_inode *ip, struct xfs_scrub *sc, bool *fixed); void xrep_failure(struct xfs_mount *mp); -int xrep_roll_ag_trans(struct xfs_scrub_context *sc); +int xrep_roll_ag_trans(struct xfs_scrub *sc); bool xrep_ag_has_space(struct xfs_perag *pag, xfs_extlen_t nr_blocks, enum xfs_ag_resv_type type); -xfs_extlen_t xrep_calc_ag_resblks(struct xfs_scrub_context *sc); -int xrep_alloc_ag_block(struct xfs_scrub_context *sc, +xfs_extlen_t xrep_calc_ag_resblks(struct xfs_scrub *sc); +int xrep_alloc_ag_block(struct xfs_scrub *sc, struct xfs_owner_info *oinfo, xfs_fsblock_t *fsbno, enum xfs_ag_resv_type resv); -int xrep_init_btblock(struct xfs_scrub_context *sc, xfs_fsblock_t fsb, +int xrep_init_btblock(struct xfs_scrub *sc, xfs_fsblock_t fsb, struct xfs_buf **bpp, xfs_btnum_t btnum, const struct xfs_buf_ops *ops); @@ -48,18 +48,18 @@ xrep_init_extent_list( #define for_each_xrep_extent_safe(rbe, n, exlist) \ list_for_each_entry_safe((rbe), (n), &(exlist)->list, list) -int xrep_collect_btree_extent(struct xfs_scrub_context *sc, +int xrep_collect_btree_extent(struct xfs_scrub *sc, struct xrep_extent_list *btlist, xfs_fsblock_t fsbno, xfs_extlen_t len); -void xrep_cancel_btree_extents(struct xfs_scrub_context *sc, +void xrep_cancel_btree_extents(struct xfs_scrub *sc, struct xrep_extent_list *btlist); -int xrep_subtract_extents(struct xfs_scrub_context *sc, +int xrep_subtract_extents(struct xfs_scrub *sc, struct xrep_extent_list *exlist, struct xrep_extent_list *sublist); -int xrep_fix_freelist(struct xfs_scrub_context *sc, bool can_shrink); -int xrep_invalidate_blocks(struct xfs_scrub_context *sc, +int xrep_fix_freelist(struct xfs_scrub *sc, bool can_shrink); +int xrep_invalidate_blocks(struct xfs_scrub *sc, struct xrep_extent_list *btlist); -int xrep_reap_btree_extents(struct xfs_scrub_context *sc, +int xrep_reap_btree_extents(struct xfs_scrub *sc, struct xrep_extent_list *exlist, struct xfs_owner_info *oinfo, enum xfs_ag_resv_type type); @@ -78,23 +78,23 @@ struct xrep_find_ag_btree { unsigned int height; }; -int xrep_find_ag_btree_roots(struct xfs_scrub_context *sc, +int xrep_find_ag_btree_roots(struct xfs_scrub *sc, struct xfs_buf *agf_bp, struct xrep_find_ag_btree *btree_info, struct xfs_buf *agfl_bp); -void xrep_force_quotacheck(struct xfs_scrub_context *sc, uint dqtype); -int xrep_ino_dqattach(struct xfs_scrub_context *sc); +void xrep_force_quotacheck(struct xfs_scrub *sc, uint dqtype); +int xrep_ino_dqattach(struct xfs_scrub *sc); /* Metadata repairers */ -int xrep_probe(struct xfs_scrub_context *sc); -int xrep_superblock(struct xfs_scrub_context *sc); +int xrep_probe(struct xfs_scrub *sc); +int xrep_superblock(struct xfs_scrub *sc); #else static inline int xrep_attempt( struct xfs_inode *ip, - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, bool *fixed) { return -EOPNOTSUPP; @@ -104,7 +104,7 @@ static inline void xrep_failure(struct xfs_mount *mp) {} static inline xfs_extlen_t xrep_calc_ag_resblks( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { ASSERT(!(sc->sm->sm_flags & XFS_SCRUB_IFLAG_REPAIR)); return 0; diff --git a/fs/xfs/scrub/rmap.c b/fs/xfs/scrub/rmap.c index 4b75fc2f31f3..dc9c91a706ff 100644 --- a/fs/xfs/scrub/rmap.c +++ b/fs/xfs/scrub/rmap.c @@ -30,7 +30,7 @@ */ int xchk_setup_ag_rmapbt( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_inode *ip) { return xchk_setup_ag_btree(sc, ip, false); @@ -41,7 +41,7 @@ xchk_setup_ag_rmapbt( /* Cross-reference a rmap against the refcount btree. */ STATIC void xchk_rmapbt_xref_refc( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_rmap_irec *irec) { xfs_agblock_t fbno; @@ -72,7 +72,7 @@ xchk_rmapbt_xref_refc( /* Cross-reference with the other btrees. */ STATIC void xchk_rmapbt_xref( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_rmap_irec *irec) { xfs_agblock_t agbno = irec->rm_startblock; @@ -172,7 +172,7 @@ out: /* Scrub the rmap btree for some AG. */ int xchk_rmapbt( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xfs_owner_info oinfo; @@ -184,7 +184,7 @@ xchk_rmapbt( /* xref check that the extent is owned by a given owner */ static inline void xchk_xref_check_owner( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_agblock_t bno, xfs_extlen_t len, struct xfs_owner_info *oinfo, @@ -207,7 +207,7 @@ xchk_xref_check_owner( /* xref check that the extent is owned by a given owner */ void xchk_xref_is_owned_by( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_agblock_t bno, xfs_extlen_t len, struct xfs_owner_info *oinfo) @@ -218,7 +218,7 @@ xchk_xref_is_owned_by( /* xref check that the extent is not owned by a given owner */ void xchk_xref_is_not_owned_by( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_agblock_t bno, xfs_extlen_t len, struct xfs_owner_info *oinfo) @@ -229,7 +229,7 @@ xchk_xref_is_not_owned_by( /* xref check that the extent has no reverse mapping at all */ void xchk_xref_has_no_owner( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_agblock_t bno, xfs_extlen_t len) { diff --git a/fs/xfs/scrub/rtbitmap.c b/fs/xfs/scrub/rtbitmap.c index 3f0fc83562ae..653a809bba34 100644 --- a/fs/xfs/scrub/rtbitmap.c +++ b/fs/xfs/scrub/rtbitmap.c @@ -26,7 +26,7 @@ /* Set us up with the realtime metadata locked. */ int xchk_setup_rt( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_inode *ip) { int error; @@ -51,7 +51,7 @@ xchk_rtbitmap_rec( struct xfs_rtalloc_rec *rec, void *priv) { - struct xfs_scrub_context *sc = priv; + struct xfs_scrub *sc = priv; xfs_rtblock_t startblock; xfs_rtblock_t blockcount; @@ -68,7 +68,7 @@ xchk_rtbitmap_rec( /* Scrub the realtime bitmap. */ int xchk_rtbitmap( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { int error; @@ -88,7 +88,7 @@ out: /* Scrub the realtime summary. */ int xchk_rtsummary( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xfs_inode *rsumip = sc->mp->m_rsumip; struct xfs_inode *old_ip = sc->ip; @@ -125,7 +125,7 @@ out: /* xref check that the extent is not free in the rtbitmap */ void xchk_xref_is_used_rt_space( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, xfs_rtblock_t fsbno, xfs_extlen_t len) { diff --git a/fs/xfs/scrub/scrub.c b/fs/xfs/scrub/scrub.c index a6efede6e430..b3c6420ccae5 100644 --- a/fs/xfs/scrub/scrub.c +++ b/fs/xfs/scrub/scrub.c @@ -151,7 +151,7 @@ */ static int xchk_probe( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { int error = 0; @@ -166,7 +166,7 @@ xchk_probe( /* Free all the resources and finish the transactions. */ STATIC int xchk_teardown( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_inode *ip_in, int error) { @@ -447,7 +447,7 @@ out: } #ifdef CONFIG_XFS_ONLINE_REPAIR -static inline void xchk_postmortem(struct xfs_scrub_context *sc) +static inline void xchk_postmortem(struct xfs_scrub *sc) { /* * Userspace asked us to repair something, we repaired it, rescanned @@ -460,7 +460,7 @@ static inline void xchk_postmortem(struct xfs_scrub_context *sc) xrep_failure(sc->mp); } #else -static inline void xchk_postmortem(struct xfs_scrub_context *sc) +static inline void xchk_postmortem(struct xfs_scrub *sc) { /* * Userspace asked us to scrub something, it's broken, and we have no @@ -479,7 +479,7 @@ xfs_scrub_metadata( struct xfs_inode *ip, struct xfs_scrub_metadata *sm) { - struct xfs_scrub_context sc; + struct xfs_scrub sc; struct xfs_mount *mp = ip->i_mount; bool try_harder = false; bool already_fixed = false; diff --git a/fs/xfs/scrub/scrub.h b/fs/xfs/scrub/scrub.h index 0f59a47c4bb0..47c75d2f28da 100644 --- a/fs/xfs/scrub/scrub.h +++ b/fs/xfs/scrub/scrub.h @@ -6,7 +6,7 @@ #ifndef __XFS_SCRUB_SCRUB_H__ #define __XFS_SCRUB_SCRUB_H__ -struct xfs_scrub_context; +struct xfs_scrub; /* Type info and names for the scrub types. */ enum xchk_type { @@ -18,14 +18,14 @@ enum xchk_type { struct xchk_meta_ops { /* Acquire whatever resources are needed for the operation. */ - int (*setup)(struct xfs_scrub_context *, + int (*setup)(struct xfs_scrub *, struct xfs_inode *); /* Examine metadata for errors. */ - int (*scrub)(struct xfs_scrub_context *); + int (*scrub)(struct xfs_scrub *); /* Repair or optimize the metadata. */ - int (*repair)(struct xfs_scrub_context *); + int (*repair)(struct xfs_scrub *); /* Decide if we even have this piece of metadata. */ bool (*has)(struct xfs_sb *); @@ -53,7 +53,7 @@ struct xchk_ag { struct xfs_btree_cur *refc_cur; }; -struct xfs_scrub_context { +struct xfs_scrub { /* General scrub state. */ struct xfs_mount *mp; struct xfs_scrub_metadata *sm; @@ -70,71 +70,71 @@ struct xfs_scrub_context { }; /* Metadata scrubbers */ -int xchk_tester(struct xfs_scrub_context *sc); -int xchk_superblock(struct xfs_scrub_context *sc); -int xchk_agf(struct xfs_scrub_context *sc); -int xchk_agfl(struct xfs_scrub_context *sc); -int xchk_agi(struct xfs_scrub_context *sc); -int xchk_bnobt(struct xfs_scrub_context *sc); -int xchk_cntbt(struct xfs_scrub_context *sc); -int xchk_inobt(struct xfs_scrub_context *sc); -int xchk_finobt(struct xfs_scrub_context *sc); -int xchk_rmapbt(struct xfs_scrub_context *sc); -int xchk_refcountbt(struct xfs_scrub_context *sc); -int xchk_inode(struct xfs_scrub_context *sc); -int xchk_bmap_data(struct xfs_scrub_context *sc); -int xchk_bmap_attr(struct xfs_scrub_context *sc); -int xchk_bmap_cow(struct xfs_scrub_context *sc); -int xchk_directory(struct xfs_scrub_context *sc); -int xchk_xattr(struct xfs_scrub_context *sc); -int xchk_symlink(struct xfs_scrub_context *sc); -int xchk_parent(struct xfs_scrub_context *sc); +int xchk_tester(struct xfs_scrub *sc); +int xchk_superblock(struct xfs_scrub *sc); +int xchk_agf(struct xfs_scrub *sc); +int xchk_agfl(struct xfs_scrub *sc); +int xchk_agi(struct xfs_scrub *sc); +int xchk_bnobt(struct xfs_scrub *sc); +int xchk_cntbt(struct xfs_scrub *sc); +int xchk_inobt(struct xfs_scrub *sc); +int xchk_finobt(struct xfs_scrub *sc); +int xchk_rmapbt(struct xfs_scrub *sc); +int xchk_refcountbt(struct xfs_scrub *sc); +int xchk_inode(struct xfs_scrub *sc); +int xchk_bmap_data(struct xfs_scrub *sc); +int xchk_bmap_attr(struct xfs_scrub *sc); +int xchk_bmap_cow(struct xfs_scrub *sc); +int xchk_directory(struct xfs_scrub *sc); +int xchk_xattr(struct xfs_scrub *sc); +int xchk_symlink(struct xfs_scrub *sc); +int xchk_parent(struct xfs_scrub *sc); #ifdef CONFIG_XFS_RT -int xchk_rtbitmap(struct xfs_scrub_context *sc); -int xchk_rtsummary(struct xfs_scrub_context *sc); +int xchk_rtbitmap(struct xfs_scrub *sc); +int xchk_rtsummary(struct xfs_scrub *sc); #else static inline int -xchk_rtbitmap(struct xfs_scrub_context *sc) +xchk_rtbitmap(struct xfs_scrub *sc) { return -ENOENT; } static inline int -xchk_rtsummary(struct xfs_scrub_context *sc) +xchk_rtsummary(struct xfs_scrub *sc) { return -ENOENT; } #endif #ifdef CONFIG_XFS_QUOTA -int xchk_quota(struct xfs_scrub_context *sc); +int xchk_quota(struct xfs_scrub *sc); #else static inline int -xchk_quota(struct xfs_scrub_context *sc) +xchk_quota(struct xfs_scrub *sc) { return -ENOENT; } #endif /* cross-referencing helpers */ -void xchk_xref_is_used_space(struct xfs_scrub_context *sc, +void xchk_xref_is_used_space(struct xfs_scrub *sc, xfs_agblock_t agbno, xfs_extlen_t len); -void xchk_xref_is_not_inode_chunk(struct xfs_scrub_context *sc, +void xchk_xref_is_not_inode_chunk(struct xfs_scrub *sc, xfs_agblock_t agbno, xfs_extlen_t len); -void xchk_xref_is_inode_chunk(struct xfs_scrub_context *sc, +void xchk_xref_is_inode_chunk(struct xfs_scrub *sc, xfs_agblock_t agbno, xfs_extlen_t len); -void xchk_xref_is_owned_by(struct xfs_scrub_context *sc, +void xchk_xref_is_owned_by(struct xfs_scrub *sc, xfs_agblock_t agbno, xfs_extlen_t len, struct xfs_owner_info *oinfo); -void xchk_xref_is_not_owned_by(struct xfs_scrub_context *sc, +void xchk_xref_is_not_owned_by(struct xfs_scrub *sc, xfs_agblock_t agbno, xfs_extlen_t len, struct xfs_owner_info *oinfo); -void xchk_xref_has_no_owner(struct xfs_scrub_context *sc, +void xchk_xref_has_no_owner(struct xfs_scrub *sc, xfs_agblock_t agbno, xfs_extlen_t len); -void xchk_xref_is_cow_staging(struct xfs_scrub_context *sc, +void xchk_xref_is_cow_staging(struct xfs_scrub *sc, xfs_agblock_t bno, xfs_extlen_t len); -void xchk_xref_is_not_shared(struct xfs_scrub_context *sc, +void xchk_xref_is_not_shared(struct xfs_scrub *sc, xfs_agblock_t bno, xfs_extlen_t len); #ifdef CONFIG_XFS_RT -void xchk_xref_is_used_rt_space(struct xfs_scrub_context *sc, +void xchk_xref_is_used_rt_space(struct xfs_scrub *sc, xfs_rtblock_t rtbno, xfs_extlen_t len); #else # define xchk_xref_is_used_rt_space(sc, rtbno, len) do { } while (0) diff --git a/fs/xfs/scrub/symlink.c b/fs/xfs/scrub/symlink.c index e2a288e34337..56c6347e9482 100644 --- a/fs/xfs/scrub/symlink.c +++ b/fs/xfs/scrub/symlink.c @@ -26,7 +26,7 @@ /* Set us up to scrub a symbolic link. */ int xchk_setup_symlink( - struct xfs_scrub_context *sc, + struct xfs_scrub *sc, struct xfs_inode *ip) { /* Allocate the buffer without the inode lock held. */ @@ -41,7 +41,7 @@ xchk_setup_symlink( int xchk_symlink( - struct xfs_scrub_context *sc) + struct xfs_scrub *sc) { struct xfs_inode *ip = sc->ip; struct xfs_ifork *ifp; diff --git a/fs/xfs/scrub/trace.h b/fs/xfs/scrub/trace.h index 96f3edda3e91..93db22c39b51 100644 --- a/fs/xfs/scrub/trace.h +++ b/fs/xfs/scrub/trace.h @@ -59,7 +59,7 @@ DEFINE_SCRUB_EVENT(xrep_attempt); DEFINE_SCRUB_EVENT(xrep_done); TRACE_EVENT(xchk_op_error, - TP_PROTO(struct xfs_scrub_context *sc, xfs_agnumber_t agno, + TP_PROTO(struct xfs_scrub *sc, xfs_agnumber_t agno, xfs_agblock_t bno, int error, void *ret_ip), TP_ARGS(sc, agno, bno, error, ret_ip), TP_STRUCT__entry( @@ -88,7 +88,7 @@ TRACE_EVENT(xchk_op_error, ); TRACE_EVENT(xchk_file_op_error, - TP_PROTO(struct xfs_scrub_context *sc, int whichfork, + TP_PROTO(struct xfs_scrub *sc, int whichfork, xfs_fileoff_t offset, int error, void *ret_ip), TP_ARGS(sc, whichfork, offset, error, ret_ip), TP_STRUCT__entry( @@ -120,7 +120,7 @@ TRACE_EVENT(xchk_file_op_error, ); DECLARE_EVENT_CLASS(xchk_block_error_class, - TP_PROTO(struct xfs_scrub_context *sc, xfs_daddr_t daddr, void *ret_ip), + TP_PROTO(struct xfs_scrub *sc, xfs_daddr_t daddr, void *ret_ip), TP_ARGS(sc, daddr, ret_ip), TP_STRUCT__entry( __field(dev_t, dev) @@ -154,7 +154,7 @@ DECLARE_EVENT_CLASS(xchk_block_error_class, #define DEFINE_SCRUB_BLOCK_ERROR_EVENT(name) \ DEFINE_EVENT(xchk_block_error_class, name, \ - TP_PROTO(struct xfs_scrub_context *sc, xfs_daddr_t daddr, \ + TP_PROTO(struct xfs_scrub *sc, xfs_daddr_t daddr, \ void *ret_ip), \ TP_ARGS(sc, daddr, ret_ip)) @@ -162,7 +162,7 @@ DEFINE_SCRUB_BLOCK_ERROR_EVENT(xchk_block_error); DEFINE_SCRUB_BLOCK_ERROR_EVENT(xchk_block_preen); DECLARE_EVENT_CLASS(xchk_ino_error_class, - TP_PROTO(struct xfs_scrub_context *sc, xfs_ino_t ino, void *ret_ip), + TP_PROTO(struct xfs_scrub *sc, xfs_ino_t ino, void *ret_ip), TP_ARGS(sc, ino, ret_ip), TP_STRUCT__entry( __field(dev_t, dev) @@ -185,7 +185,7 @@ DECLARE_EVENT_CLASS(xchk_ino_error_class, #define DEFINE_SCRUB_INO_ERROR_EVENT(name) \ DEFINE_EVENT(xchk_ino_error_class, name, \ - TP_PROTO(struct xfs_scrub_context *sc, xfs_ino_t ino, \ + TP_PROTO(struct xfs_scrub *sc, xfs_ino_t ino, \ void *ret_ip), \ TP_ARGS(sc, ino, ret_ip)) @@ -194,7 +194,7 @@ DEFINE_SCRUB_INO_ERROR_EVENT(xchk_ino_preen); DEFINE_SCRUB_INO_ERROR_EVENT(xchk_ino_warning); DECLARE_EVENT_CLASS(xchk_fblock_error_class, - TP_PROTO(struct xfs_scrub_context *sc, int whichfork, + TP_PROTO(struct xfs_scrub *sc, int whichfork, xfs_fileoff_t offset, void *ret_ip), TP_ARGS(sc, whichfork, offset, ret_ip), TP_STRUCT__entry( @@ -224,7 +224,7 @@ DECLARE_EVENT_CLASS(xchk_fblock_error_class, #define DEFINE_SCRUB_FBLOCK_ERROR_EVENT(name) \ DEFINE_EVENT(xchk_fblock_error_class, name, \ - TP_PROTO(struct xfs_scrub_context *sc, int whichfork, \ + TP_PROTO(struct xfs_scrub *sc, int whichfork, \ xfs_fileoff_t offset, void *ret_ip), \ TP_ARGS(sc, whichfork, offset, ret_ip)) @@ -232,7 +232,7 @@ DEFINE_SCRUB_FBLOCK_ERROR_EVENT(xchk_fblock_error); DEFINE_SCRUB_FBLOCK_ERROR_EVENT(xchk_fblock_warning); TRACE_EVENT(xchk_incomplete, - TP_PROTO(struct xfs_scrub_context *sc, void *ret_ip), + TP_PROTO(struct xfs_scrub *sc, void *ret_ip), TP_ARGS(sc, ret_ip), TP_STRUCT__entry( __field(dev_t, dev) @@ -251,7 +251,7 @@ TRACE_EVENT(xchk_incomplete, ); TRACE_EVENT(xchk_btree_op_error, - TP_PROTO(struct xfs_scrub_context *sc, struct xfs_btree_cur *cur, + TP_PROTO(struct xfs_scrub *sc, struct xfs_btree_cur *cur, int level, int error, void *ret_ip), TP_ARGS(sc, cur, level, error, ret_ip), TP_STRUCT__entry( @@ -291,7 +291,7 @@ TRACE_EVENT(xchk_btree_op_error, ); TRACE_EVENT(xchk_ifork_btree_op_error, - TP_PROTO(struct xfs_scrub_context *sc, struct xfs_btree_cur *cur, + TP_PROTO(struct xfs_scrub *sc, struct xfs_btree_cur *cur, int level, int error, void *ret_ip), TP_ARGS(sc, cur, level, error, ret_ip), TP_STRUCT__entry( @@ -336,7 +336,7 @@ TRACE_EVENT(xchk_ifork_btree_op_error, ); TRACE_EVENT(xchk_btree_error, - TP_PROTO(struct xfs_scrub_context *sc, struct xfs_btree_cur *cur, + TP_PROTO(struct xfs_scrub *sc, struct xfs_btree_cur *cur, int level, void *ret_ip), TP_ARGS(sc, cur, level, ret_ip), TP_STRUCT__entry( @@ -372,7 +372,7 @@ TRACE_EVENT(xchk_btree_error, ); TRACE_EVENT(xchk_ifork_btree_error, - TP_PROTO(struct xfs_scrub_context *sc, struct xfs_btree_cur *cur, + TP_PROTO(struct xfs_scrub *sc, struct xfs_btree_cur *cur, int level, void *ret_ip), TP_ARGS(sc, cur, level, ret_ip), TP_STRUCT__entry( @@ -414,7 +414,7 @@ TRACE_EVENT(xchk_ifork_btree_error, ); DECLARE_EVENT_CLASS(xchk_sbtree_class, - TP_PROTO(struct xfs_scrub_context *sc, struct xfs_btree_cur *cur, + TP_PROTO(struct xfs_scrub *sc, struct xfs_btree_cur *cur, int level), TP_ARGS(sc, cur, level), TP_STRUCT__entry( @@ -451,7 +451,7 @@ DECLARE_EVENT_CLASS(xchk_sbtree_class, ) #define DEFINE_SCRUB_SBTREE_EVENT(name) \ DEFINE_EVENT(xchk_sbtree_class, name, \ - TP_PROTO(struct xfs_scrub_context *sc, struct xfs_btree_cur *cur, \ + TP_PROTO(struct xfs_scrub *sc, struct xfs_btree_cur *cur, \ int level), \ TP_ARGS(sc, cur, level)) @@ -459,7 +459,7 @@ DEFINE_SCRUB_SBTREE_EVENT(xchk_btree_rec); DEFINE_SCRUB_SBTREE_EVENT(xchk_btree_key); TRACE_EVENT(xchk_xref_error, - TP_PROTO(struct xfs_scrub_context *sc, int error, void *ret_ip), + TP_PROTO(struct xfs_scrub *sc, int error, void *ret_ip), TP_ARGS(sc, error, ret_ip), TP_STRUCT__entry( __field(dev_t, dev) |