xfs: consolidate the xfs_alloc_lookup_* helpers
authorChristoph Hellwig <hch@lst.de>
Thu, 22 Feb 2024 20:35:14 +0000 (12:35 -0800)
committerDarrick J. Wong <djwong@kernel.org>
Thu, 22 Feb 2024 20:35:14 +0000 (12:35 -0800)
Add a single xfs_alloc_lookup helper to sort out the argument passing and
setting of the active flag instead of duplicating the logic three times.

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/libxfs/xfs_alloc.c

index ac31b62e70177781bb69c91584752d9825565358..a40a5e43e94c8e4ed451a28d6336db0a758fd88a 100644 (file)
@@ -151,23 +151,35 @@ xfs_alloc_ag_max_usable(
        return mp->m_sb.sb_agblocks - blocks;
 }
 
+
+static int
+xfs_alloc_lookup(
+       struct xfs_btree_cur    *cur,
+       xfs_lookup_t            dir,
+       xfs_agblock_t           bno,
+       xfs_extlen_t            len,
+       int                     *stat)
+{
+       int                     error;
+
+       cur->bc_rec.a.ar_startblock = bno;
+       cur->bc_rec.a.ar_blockcount = len;
+       error = xfs_btree_lookup(cur, dir, stat);
+       cur->bc_ag.abt.active = (*stat == 1);
+       return error;
+}
+
 /*
  * Lookup the record equal to [bno, len] in the btree given by cur.
  */
-STATIC int                             /* error */
+static inline int                              /* error */
 xfs_alloc_lookup_eq(
        struct xfs_btree_cur    *cur,   /* btree cursor */
        xfs_agblock_t           bno,    /* starting block of extent */
        xfs_extlen_t            len,    /* length of extent */
        int                     *stat)  /* success/failure */
 {
-       int                     error;
-
-       cur->bc_rec.a.ar_startblock = bno;
-       cur->bc_rec.a.ar_blockcount = len;
-       error = xfs_btree_lookup(cur, XFS_LOOKUP_EQ, stat);
-       cur->bc_ag.abt.active = (*stat == 1);
-       return error;
+       return xfs_alloc_lookup(cur, XFS_LOOKUP_EQ, bno, len, stat);
 }
 
 /*
@@ -181,13 +193,7 @@ xfs_alloc_lookup_ge(
        xfs_extlen_t            len,    /* length of extent */
        int                     *stat)  /* success/failure */
 {
-       int                     error;
-
-       cur->bc_rec.a.ar_startblock = bno;
-       cur->bc_rec.a.ar_blockcount = len;
-       error = xfs_btree_lookup(cur, XFS_LOOKUP_GE, stat);
-       cur->bc_ag.abt.active = (*stat == 1);
-       return error;
+       return xfs_alloc_lookup(cur, XFS_LOOKUP_GE, bno, len, stat);
 }
 
 /*
@@ -201,12 +207,7 @@ xfs_alloc_lookup_le(
        xfs_extlen_t            len,    /* length of extent */
        int                     *stat)  /* success/failure */
 {
-       int                     error;
-       cur->bc_rec.a.ar_startblock = bno;
-       cur->bc_rec.a.ar_blockcount = len;
-       error = xfs_btree_lookup(cur, XFS_LOOKUP_LE, stat);
-       cur->bc_ag.abt.active = (*stat == 1);
-       return error;
+       return xfs_alloc_lookup(cur, XFS_LOOKUP_LE, bno, len, stat);
 }
 
 static inline bool