[Devel] [PATCH RHEL9 COMMIT] ms/xfs: fold perag loop iteration logic into helper function

Konstantin Khorenko khorenko at virtuozzo.com
Tue Dec 7 18:14:45 MSK 2021


The commit is pushed to "branch-rh9-5.14.vz9.1.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh9-5.14.0-4.vz9.10.33
------>
commit a7524935ce28f385064aa036da25712ea3b47e33
Author: Brian Foster <bfoster at redhat.com>
Date:   Tue Dec 7 18:14:45 2021 +0300

    ms/xfs: fold perag loop iteration logic into helper function
    
    ms commit bf2307b19513
    
    Fold the loop iteration logic into a helper in preparation for
    further fixups. No functional change in this patch.
    
    Signed-off-by: Brian Foster <bfoster at redhat.com>
    Reviewed-by: Dave Chinner <dchinner at redhat.com>
    Reviewed-by: Darrick J. Wong <djwong at kernel.org>
    Signed-off-by: Darrick J. Wong <djwong at kernel.org>
    
    Feature: fix ms/xfs
    Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>
---
 fs/xfs/libxfs/xfs_ag.h | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/fs/xfs/libxfs/xfs_ag.h b/fs/xfs/libxfs/xfs_ag.h
index 4c6f9045baca..ddb89e10b6ea 100644
--- a/fs/xfs/libxfs/xfs_ag.h
+++ b/fs/xfs/libxfs/xfs_ag.h
@@ -124,12 +124,22 @@ void xfs_perag_put(struct xfs_perag *pag);
  * for_each_perag_from() because they terminate at sb_agcount where there are
  * no perag structures in tree beyond end_agno.
  */
+static inline struct xfs_perag *
+xfs_perag_next(
+	struct xfs_perag	*pag,
+	xfs_agnumber_t		*next_agno)
+{
+	struct xfs_mount	*mp = pag->pag_mount;
+
+	*next_agno = pag->pag_agno + 1;
+	xfs_perag_put(pag);
+	return xfs_perag_get(mp, *next_agno);
+}
+
 #define for_each_perag_range(mp, next_agno, end_agno, pag) \
 	for ((pag) = xfs_perag_get((mp), (next_agno)); \
 		(pag) != NULL && (next_agno) <= (end_agno); \
-		(next_agno) = (pag)->pag_agno + 1, \
-		xfs_perag_put(pag), \
-		(pag) = xfs_perag_get((mp), (next_agno)))
+		(pag) = xfs_perag_next((pag), &(next_agno)))
 
 #define for_each_perag_from(mp, next_agno, pag) \
 	for_each_perag_range((mp), (next_agno), (mp)->m_sb.sb_agcount, (pag))


More information about the Devel mailing list