On Thu, May 06, 2021 at 05:20:39PM +1000, Dave Chinner wrote: > From: Dave Chinner <dchinner@xxxxxxxxxx> > > Clean up the last external manual AG walk. > > Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> Simple enough conversion I don't mind RVBing before we settle the exact iterator idioms... Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx> --D > --- > fs/xfs/libxfs/xfs_sb.c | 12 +++++++----- > 1 file changed, 7 insertions(+), 5 deletions(-) > > diff --git a/fs/xfs/libxfs/xfs_sb.c b/fs/xfs/libxfs/xfs_sb.c > index cbcfce8cebf1..7d4c238540d4 100644 > --- a/fs/xfs/libxfs/xfs_sb.c > +++ b/fs/xfs/libxfs/xfs_sb.c > @@ -25,6 +25,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. > @@ -856,17 +857,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, > @@ -878,7 +880,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; > @@ -899,7 +901,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; > -- > 2.31.1 >