xfs: rename xchk_get_inode -> xchk_iget_for_scrubbing
authorDarrick J. Wong <djwong@kernel.org>
Wed, 12 Apr 2023 02:00:21 +0000 (19:00 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Wed, 12 Apr 2023 02:00:21 +0000 (19:00 -0700)
Dave Chinner suggested renaming this function to make more obvious what
it does.  The function returns an incore inode to callers that want to
scrub a metadata structure that hangs off an inode.  If the iget fails
with EINVAL, it will single-step the loading process to distinguish
between actually free inodes or impossible inumbers (ENOENT);
discrepancies between the inobt freemask and the free status in the
inode record (EFSCORRUPTED).  Any other negative errno is returned
unchanged.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
fs/xfs/scrub/bmap.c
fs/xfs/scrub/common.c
fs/xfs/scrub/common.h
fs/xfs/scrub/inode.c

index 2412dcf..9cf66a5 100644 (file)
@@ -34,7 +34,7 @@ xchk_setup_inode_bmap(
        if (xchk_need_intent_drain(sc))
                xchk_fsgates_enable(sc, XCHK_FSGATES_DRAIN);
 
-       error = xchk_get_inode(sc);
+       error = xchk_iget_for_scrubbing(sc);
        if (error)
                goto out;
 
index 3fd4374..8dd9ab3 100644 (file)
@@ -832,12 +832,14 @@ xchk_install_handle_inode(
 }
 
 /*
- * Given an inode and the scrub control structure, grab either the
- * inode referenced in the control structure or the inode passed in.
- * The inode is not locked.
+ * In preparation to scrub metadata structures that hang off of an inode,
+ * grab either the inode referenced in the scrub control structure or the
+ * inode passed in.  If the inumber does not reference an allocated inode
+ * record, the function returns ENOENT to end the scrub early.  The inode
+ * is not locked.
  */
 int
-xchk_get_inode(
+xchk_iget_for_scrubbing(
        struct xfs_scrub        *sc)
 {
        struct xfs_imap         imap;
@@ -994,7 +996,7 @@ xchk_setup_inode_contents(
 {
        int                     error;
 
-       error = xchk_get_inode(sc);
+       error = xchk_iget_for_scrubbing(sc);
        if (error)
                return error;
 
index 5c76614..bfe4deb 100644 (file)
@@ -135,7 +135,7 @@ int xchk_count_rmap_ownedby_ag(struct xfs_scrub *sc, struct xfs_btree_cur *cur,
                const struct xfs_owner_info *oinfo, xfs_filblks_t *blocks);
 
 int xchk_setup_ag_btree(struct xfs_scrub *sc, bool force_log);
-int xchk_get_inode(struct xfs_scrub *sc);
+int xchk_iget_for_scrubbing(struct xfs_scrub *sc);
 int xchk_setup_inode_contents(struct xfs_scrub *sc, unsigned int resblks);
 void xchk_buffer_recheck(struct xfs_scrub *sc, struct xfs_buf *bp);
 
index 2db96c8..424a357 100644 (file)
@@ -39,7 +39,7 @@ xchk_setup_inode(
         * Try to get the inode.  If the verifiers fail, we try again
         * in raw mode.
         */
-       error = xchk_get_inode(sc);
+       error = xchk_iget_for_scrubbing(sc);
        switch (error) {
        case 0:
                break;