Re: [PATCH 07/22] xfs: convert secondary superblock walk to use perags

Brian Foster
2021-05-10T13:51:17Z

On Thu, May 06, 2021 at 05:20:39PM +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> Clean up the last external manual AG walk.
>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---

Reviewed-by: Brian Foster <bfoster@redhat.com>

> 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
>