From: Dave Chinner Date: Fri, 15 Oct 2021 20:28:25 +0000 (-0400) Subject: xfs: convert xfs_iwalk to use perag references X-Git-Tag: libxfs-5.14-sync_2021-10-16~35 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b92a329e61ef4a2a8d426f7786206bc79a4c5c20;p=thirdparty%2Fxfsprogs-dev.git xfs: convert xfs_iwalk to use perag references Source kernel commit: 6f4118fc6482b1989cdcb19a1a0ab53b2dca7ab9 Rather than manually walking the ags and passing agnunbers around, pass the perag for the AG we are currently working on around in the iwalk structure. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong Signed-off-by: Eric Sandeen --- diff --git a/libxfs/xfs_ag.h b/libxfs/xfs_ag.h index 8f26a7b13..052f5ff48 100644 --- a/libxfs/xfs_ag.h +++ b/libxfs/xfs_ag.h @@ -117,19 +117,23 @@ void xfs_perag_put(struct xfs_perag *pag); /* * Perag iteration APIs */ -#define for_each_perag(mp, next_agno, pag) \ - for ((next_agno) = 0, (pag) = xfs_perag_get((mp), 0); \ +#define for_each_perag_from(mp, next_agno, pag) \ + for ((pag) = xfs_perag_get((mp), (next_agno)); \ (pag) != NULL; \ (next_agno) = (pag)->pag_agno + 1, \ xfs_perag_put(pag), \ (pag) = xfs_perag_get((mp), (next_agno))) -#define for_each_perag_tag(mp, next_agno, pag, tag) \ - for ((next_agno) = 0, (pag) = xfs_perag_get_tag((mp), 0, (tag)); \ +#define for_each_perag(mp, agno, pag) \ + (agno) = 0; \ + for_each_perag_from((mp), (agno), (pag)) + +#define for_each_perag_tag(mp, agno, pag, tag) \ + for ((agno) = 0, (pag) = xfs_perag_get_tag((mp), 0, (tag)); \ (pag) != NULL; \ - (next_agno) = (pag)->pag_agno + 1, \ + (agno) = (pag)->pag_agno + 1, \ xfs_perag_put(pag), \ - (pag) = xfs_perag_get_tag((mp), (next_agno), (tag))) + (pag) = xfs_perag_get_tag((mp), (agno), (tag))) struct aghdr_init_data { /* per ag data */