xfs: fix superfluous clearing of info->low in __xfs_getfsmap_datadev
authorChristoph Hellwig <hch@lst.de>
Mon, 4 Nov 2024 04:18:25 +0000 (20:18 -0800)
committerDarrick J. Wong <djwong@kernel.org>
Tue, 5 Nov 2024 21:38:23 +0000 (13:38 -0800)
The for_each_perag helpers update the agno passed in for each iteration,
and thus the "if (pag->pag_agno == start_ag)" check will always be true.

Add another variable for the loop iterator so that the field is only
cleared after the first iteration.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
fs/xfs/xfs_fsmap.c

index ae18ab86e608b5d9c23414d0b90cb369bf6e863f..67140ef8c3232cd146f104470bb7554081b75944 100644 (file)
@@ -471,8 +471,7 @@ __xfs_getfsmap_datadev(
        struct xfs_btree_cur            *bt_cur = NULL;
        xfs_fsblock_t                   start_fsb;
        xfs_fsblock_t                   end_fsb;
-       xfs_agnumber_t                  start_ag;
-       xfs_agnumber_t                  end_ag;
+       xfs_agnumber_t                  start_ag, end_ag, ag;
        uint64_t                        eofs;
        int                             error = 0;
 
@@ -520,7 +519,8 @@ __xfs_getfsmap_datadev(
        start_ag = XFS_FSB_TO_AGNO(mp, start_fsb);
        end_ag = XFS_FSB_TO_AGNO(mp, end_fsb);
 
-       for_each_perag_range(mp, start_ag, end_ag, pag) {
+       ag = start_ag;
+       for_each_perag_range(mp, ag, end_ag, pag) {
                /*
                 * Set the AG high key from the fsmap high key if this
                 * is the last AG that we're querying.