]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs_repair: pass private data pointer to scan_lbtree
authorDarrick J. Wong <djwong@kernel.org>
Thu, 21 Nov 2024 00:24:20 +0000 (16:24 -0800)
committerDarrick J. Wong <djwong@kernel.org>
Tue, 24 Dec 2024 02:01:27 +0000 (18:01 -0800)
Pass a private data pointer through scan_lbtree.  We'll use this
later when scanning the rtrmapbt to keep track of scan state.

Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
repair/dinode.c
repair/scan.c
repair/scan.h

index 60a853d152ccecfdb3c9fefd616603d042b331fa..4ca45ad4aab1fabc42a9ecb1ac9e6c978bb63c61 100644 (file)
@@ -839,7 +839,7 @@ _("bad bmap btree ptr 0x%" PRIx64 " in ino %" PRIu64 "\n"),
 
                if (scan_lbtree(get_unaligned_be64(&pp[i]), level, scan_bmapbt,
                                type, whichfork, lino, tot, nex, blkmapp,
-                               &cursor, 1, check_dups, magic,
+                               &cursor, 1, check_dups, magic, NULL,
                                &xfs_bmbt_buf_ops))
                        return(1);
                /*
index b115dd4948b96941aca3499fdebecd8f639ddba0..f6d46a2861b31251935aff58327cd944d2e75439 100644 (file)
@@ -139,7 +139,8 @@ scan_lbtree(
                                int                     isroot,
                                int                     check_dups,
                                int                     *dirty,
-                               uint64_t                magic),
+                               uint64_t                magic,
+                               void                    *priv),
        int             type,
        int             whichfork,
        xfs_ino_t       ino,
@@ -150,6 +151,7 @@ scan_lbtree(
        int             isroot,
        int             check_dups,
        uint64_t        magic,
+       void            *priv,
        const struct xfs_buf_ops *ops)
 {
        struct xfs_buf  *bp;
@@ -181,7 +183,7 @@ scan_lbtree(
        err = (*func)(XFS_BUF_TO_BLOCK(bp), nlevels - 1,
                        type, whichfork, root, ino, tot, nex, blkmapp,
                        bm_cursor, isroot, check_dups, &dirty,
-                       magic);
+                       magic, priv);
 
        ASSERT(dirty == 0 || (dirty && !no_modify));
 
@@ -210,7 +212,8 @@ scan_bmapbt(
        int                     isroot,
        int                     check_dups,
        int                     *dirty,
-       uint64_t                magic)
+       uint64_t                magic,
+       void                    *priv)
 {
        int                     i;
        int                     err;
@@ -486,7 +489,7 @@ _("bad bmap btree ptr 0x%llx in ino %" PRIu64 "\n"),
 
                err = scan_lbtree(be64_to_cpu(pp[i]), level, scan_bmapbt,
                                type, whichfork, ino, tot, nex, blkmapp,
-                               bm_cursor, 0, check_dups, magic,
+                               bm_cursor, 0, check_dups, magic, priv,
                                &xfs_bmbt_buf_ops);
                if (err)
                        return(1);
index ee16362b6d3c693277ec7777af29bdd052d3093b..4da788becbef667924bf57e8fe2fcd0e5345c530 100644 (file)
@@ -26,7 +26,8 @@ int scan_lbtree(
                                int                     isroot,
                                int                     check_dups,
                                int                     *dirty,
-                               uint64_t                magic),
+                               uint64_t                magic,
+                               void                    *priv),
        int             type,
        int             whichfork,
        xfs_ino_t       ino,
@@ -37,6 +38,7 @@ int scan_lbtree(
        int             isroot,
        int             check_dups,
        uint64_t        magic,
+       void            *priv,
        const struct xfs_buf_ops *ops);
 
 int scan_bmapbt(
@@ -53,7 +55,8 @@ int scan_bmapbt(
        int                     isroot,
        int                     check_dups,
        int                     *dirty,
-       uint64_t                magic);
+       uint64_t                magic,
+       void                    *priv);
 
 void
 scan_ags(