xfs
[Top] [All Lists]

[PATCH 22/29] xfs_repair: pass private data pointer to scan_lbtree

To: david@xxxxxxxxxxxxx, darrick.wong@xxxxxxxxxx
Subject: [PATCH 22/29] xfs_repair: pass private data pointer to scan_lbtree
From: "Darrick J. Wong" <darrick.wong@xxxxxxxxxx>
Date: Thu, 25 Aug 2016 17:00:57 -0700
Cc: linux-xfs@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <147216950911.7022.438115723996286926.stgit@xxxxxxxxxxxxxxxx>
References: <147216950911.7022.438115723996286926.stgit@xxxxxxxxxxxxxxxx>
User-agent: StGit/0.17.1-dirty
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 <darrick.wong@xxxxxxxxxx>
---
 repair/dinode.c |    2 +-
 repair/scan.c   |   11 +++++++----
 repair/scan.h   |    7 +++++--
 3 files changed, 13 insertions(+), 7 deletions(-)


diff --git a/repair/dinode.c b/repair/dinode.c
index 11b60ce..843c465 100644
--- a/repair/dinode.c
+++ b/repair/dinode.c
@@ -1007,7 +1007,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);
                /*
diff --git a/repair/scan.c b/repair/scan.c
index f4d6f89..8935be7 100644
--- a/repair/scan.c
+++ b/repair/scan.c
@@ -116,7 +116,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,
@@ -127,6 +128,7 @@ scan_lbtree(
        int             isroot,
        int             check_dups,
        __uint64_t      magic,
+       void            *priv,
        const struct xfs_buf_ops *ops)
 {
        xfs_buf_t       *bp;
@@ -158,7 +160,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));
 
@@ -185,7 +187,8 @@ scan_bmapbt(
        int                     isroot,
        int                     check_dups,
        int                     *dirty,
-       __uint64_t              magic)
+       __uint64_t              magic,
+       void                    *priv)
 {
        int                     i;
        int                     err;
@@ -469,7 +472,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);
diff --git a/repair/scan.h b/repair/scan.h
index ea8c0bf..854897c 100644
--- a/repair/scan.h
+++ b/repair/scan.h
@@ -36,7 +36,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,
@@ -47,6 +48,7 @@ int scan_lbtree(
        int             isroot,
        int             check_dups,
        __uint64_t      magic,
+       void            *priv,
        const struct xfs_buf_ops *ops);
 
 int scan_bmapbt(
@@ -63,7 +65,8 @@ int scan_bmapbt(
        int                     isroot,
        int                     check_dups,
        int                     *dirty,
-       __uint64_t              magic);
+       __uint64_t              magic,
+       void                    *priv);
 
 void
 scan_ags(

<Prev in Thread] Current Thread [Next in Thread>