]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs: convert secondary superblock walk to use perags
authorDave Chinner <dchinner@redhat.com>
Fri, 15 Oct 2021 20:28:25 +0000 (16:28 -0400)
committerEric Sandeen <sandeen@sandeen.net>
Fri, 15 Oct 2021 20:28:25 +0000 (16:28 -0400)
Source kernel commit: 7f8d3b3ca6fe9269b3c5deee0dcea38499288e06

Clean up the last external manual AG walk.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
libxfs/xfs_sb.c

index ec08fd138e0c5053fd6ffff687653112df8fb2f2..b2e214ee783e3abf19a5807ca21b2fd6eb4b216b 100644 (file)
@@ -22,6 +22,7 @@
 #include "xfs_refcount_btree.h"
 #include "xfs_da_format.h"
 #include "xfs_health.h"
+#include "xfs_ag.h"
 
 /*
  * Physical superblock buffer manipulations. Shared with libxfs in userspace.
@@ -853,17 +854,18 @@ int
 xfs_update_secondary_sbs(
        struct xfs_mount        *mp)
 {
-       xfs_agnumber_t          agno;
+       struct xfs_perag        *pag;
+       xfs_agnumber_t          agno = 1;
        int                     saved_error = 0;
        int                     error = 0;
        LIST_HEAD               (buffer_list);
 
        /* update secondary superblocks. */
-       for (agno = 1; agno < mp->m_sb.sb_agcount; agno++) {
+       for_each_perag_from(mp, agno, pag) {
                struct xfs_buf          *bp;
 
                error = xfs_buf_get(mp->m_ddev_targp,
-                                XFS_AG_DADDR(mp, agno, XFS_SB_DADDR),
+                                XFS_AG_DADDR(mp, pag->pag_agno, XFS_SB_DADDR),
                                 XFS_FSS_TO_BB(mp, 1), &bp);
                /*
                 * If we get an error reading or writing alternate superblocks,
@@ -875,7 +877,7 @@ xfs_update_secondary_sbs(
                if (error) {
                        xfs_warn(mp,
                "error allocating secondary superblock for ag %d",
-                               agno);
+                               pag->pag_agno);
                        if (!saved_error)
                                saved_error = error;
                        continue;
@@ -896,7 +898,7 @@ xfs_update_secondary_sbs(
                if (error) {
                        xfs_warn(mp,
                "write error %d updating a secondary superblock near ag %d",
-                               error, agno);
+                               error, pag->pag_agno);
                        if (!saved_error)
                                saved_error = error;
                        continue;