]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs: refactor free space btree record initialization
authorDarrick J. Wong <darrick.wong@oracle.com>
Wed, 28 Aug 2019 16:08:09 +0000 (12:08 -0400)
committerEric Sandeen <sandeen@redhat.com>
Wed, 28 Aug 2019 16:08:09 +0000 (12:08 -0400)
Source kernel commit: 8d90857cff445f176a591d01c0999e8d563217bf

Refactor the code that populates the free space btrees of a new AG so
that we can avoid code duplication once things start getting
complicated.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Allison Collins <allison.henderson@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
libxfs/xfs_ag.c

index 8ee45699f5b8aa5c078facd878c3f04543b85919..fe79693e99b2293a8db16d3d3f35ee0d334df987 100644 (file)
@@ -57,37 +57,42 @@ xfs_btroot_init(
        xfs_btree_init_block(mp, bp, id->type, 0, 0, id->agno);
 }
 
-/*
- * Alloc btree root block init functions
- */
+/* Finish initializing a free space btree. */
 static void
-xfs_bnoroot_init(
+xfs_freesp_init_recs(
        struct xfs_mount        *mp,
        struct xfs_buf          *bp,
        struct aghdr_init_data  *id)
 {
        struct xfs_alloc_rec    *arec;
 
-       xfs_btree_init_block(mp, bp, XFS_BTNUM_BNO, 0, 1, id->agno);
        arec = XFS_ALLOC_REC_ADDR(mp, XFS_BUF_TO_BLOCK(bp), 1);
        arec->ar_startblock = cpu_to_be32(mp->m_ag_prealloc_blocks);
        arec->ar_blockcount = cpu_to_be32(id->agsize -
                                          be32_to_cpu(arec->ar_startblock));
 }
 
+/*
+ * Alloc btree root block init functions
+ */
 static void
-xfs_cntroot_init(
+xfs_bnoroot_init(
        struct xfs_mount        *mp,
        struct xfs_buf          *bp,
        struct aghdr_init_data  *id)
 {
-       struct xfs_alloc_rec    *arec;
+       xfs_btree_init_block(mp, bp, XFS_BTNUM_BNO, 0, 1, id->agno);
+       xfs_freesp_init_recs(mp, bp, id);
+}
 
+static void
+xfs_cntroot_init(
+       struct xfs_mount        *mp,
+       struct xfs_buf          *bp,
+       struct aghdr_init_data  *id)
+{
        xfs_btree_init_block(mp, bp, XFS_BTNUM_CNT, 0, 1, id->agno);
-       arec = XFS_ALLOC_REC_ADDR(mp, XFS_BUF_TO_BLOCK(bp), 1);
-       arec->ar_startblock = cpu_to_be32(mp->m_ag_prealloc_blocks);
-       arec->ar_blockcount = cpu_to_be32(id->agsize -
-                                         be32_to_cpu(arec->ar_startblock));
+       xfs_freesp_init_recs(mp, bp, id);
 }
 
 /*