]> www.infradead.org Git - users/hch/xfsprogs.git/commitdiff
xfs: simplify the xfs_rmap_{alloc,free}_extent calling conventions
authorDarrick J. Wong <djwong@kernel.org>
Tue, 7 Mar 2023 03:55:46 +0000 (19:55 -0800)
committerDarrick J. Wong <djwong@kernel.org>
Wed, 22 Nov 2023 23:03:37 +0000 (15:03 -0800)
Simplify the calling conventions by allowing callers to pass a fsbno
(xfs_fsblock_t) directly into these functions, since we're just going to
set it in a struct anyway.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
libxfs/xfs_refcount.c
libxfs/xfs_rmap.c
libxfs/xfs_rmap.h
repair/rmap.c

index b4f0179e1a40ba972939ad5521cb7a10c78d7726..32d5aa6d499a9329000e4ae6d01072db6e1f6e9e 100644 (file)
@@ -1894,8 +1894,7 @@ xfs_refcount_alloc_cow_extent(
        __xfs_refcount_add(tp, XFS_REFCOUNT_ALLOC_COW, fsb, len);
 
        /* Add rmap entry */
-       xfs_rmap_alloc_extent(tp, XFS_FSB_TO_AGNO(mp, fsb),
-                       XFS_FSB_TO_AGBNO(mp, fsb), len, XFS_RMAP_OWN_COW);
+       xfs_rmap_alloc_extent(tp, fsb, len, XFS_RMAP_OWN_COW);
 }
 
 /* Forget a CoW staging event in the refcount btree. */
@@ -1911,8 +1910,7 @@ xfs_refcount_free_cow_extent(
                return;
 
        /* Remove rmap entry */
-       xfs_rmap_free_extent(tp, XFS_FSB_TO_AGNO(mp, fsb),
-                       XFS_FSB_TO_AGBNO(mp, fsb), len, XFS_RMAP_OWN_COW);
+       xfs_rmap_free_extent(tp, fsb, len, XFS_RMAP_OWN_COW);
        __xfs_refcount_add(tp, XFS_REFCOUNT_FREE_COW, fsb, len);
 }
 
index 1718b0c760fe2592057aa1ae552117d1591fe2ab..bd372dbe328dc2731ab1b08a89ddaf65999b30da 100644 (file)
@@ -526,7 +526,7 @@ xfs_rmap_free_check_owner(
        struct xfs_btree_cur    *cur,
        uint64_t                ltoff,
        struct xfs_rmap_irec    *rec,
-       xfs_filblks_t           len,
+       xfs_extlen_t            len,
        uint64_t                owner,
        uint64_t                offset,
        unsigned int            flags)
@@ -2717,8 +2717,7 @@ xfs_rmap_convert_extent(
 void
 xfs_rmap_alloc_extent(
        struct xfs_trans        *tp,
-       xfs_agnumber_t          agno,
-       xfs_agblock_t           bno,
+       xfs_fsblock_t           fsbno,
        xfs_extlen_t            len,
        uint64_t                owner)
 {
@@ -2727,7 +2726,7 @@ xfs_rmap_alloc_extent(
        if (!xfs_rmap_update_is_needed(tp->t_mountp, XFS_DATA_FORK))
                return;
 
-       bmap.br_startblock = XFS_AGB_TO_FSB(tp->t_mountp, agno, bno);
+       bmap.br_startblock = fsbno;
        bmap.br_blockcount = len;
        bmap.br_startoff = 0;
        bmap.br_state = XFS_EXT_NORM;
@@ -2739,8 +2738,7 @@ xfs_rmap_alloc_extent(
 void
 xfs_rmap_free_extent(
        struct xfs_trans        *tp,
-       xfs_agnumber_t          agno,
-       xfs_agblock_t           bno,
+       xfs_fsblock_t           fsbno,
        xfs_extlen_t            len,
        uint64_t                owner)
 {
@@ -2749,7 +2747,7 @@ xfs_rmap_free_extent(
        if (!xfs_rmap_update_is_needed(tp->t_mountp, XFS_DATA_FORK))
                return;
 
-       bmap.br_startblock = XFS_AGB_TO_FSB(tp->t_mountp, agno, bno);
+       bmap.br_startblock = fsbno;
        bmap.br_blockcount = len;
        bmap.br_startoff = 0;
        bmap.br_state = XFS_EXT_NORM;
index b8d85f23b2725340d2176ceb053b9cfaefcf8c7c..ca38168c8709a19e8eafe49537040e3e4cb3c07d 100644 (file)
@@ -184,10 +184,10 @@ void xfs_rmap_unmap_extent(struct xfs_trans *tp, struct xfs_inode *ip,
 void xfs_rmap_convert_extent(struct xfs_mount *mp, struct xfs_trans *tp,
                struct xfs_inode *ip, int whichfork,
                struct xfs_bmbt_irec *imap);
-void xfs_rmap_alloc_extent(struct xfs_trans *tp, xfs_agnumber_t agno,
-               xfs_agblock_t bno, xfs_extlen_t len, uint64_t owner);
-void xfs_rmap_free_extent(struct xfs_trans *tp, xfs_agnumber_t agno,
-               xfs_agblock_t bno, xfs_extlen_t len, uint64_t owner);
+void xfs_rmap_alloc_extent(struct xfs_trans *tp, xfs_fsblock_t fsbno,
+               xfs_extlen_t len, uint64_t owner);
+void xfs_rmap_free_extent(struct xfs_trans *tp, xfs_fsblock_t fsbno,
+               xfs_extlen_t len, uint64_t owner);
 
 int xfs_rmap_finish_one(struct xfs_trans *tp, struct xfs_rmap_intent *ri,
                struct xfs_btree_cur **pcur);
index 37fcf923644beff876b788a508b5d86ed2f199c0..265199d21177ebb8f222c6b77b7ad1324e929b9a 100644 (file)
@@ -1278,7 +1278,6 @@ rmap_diffkeys(
 {
        __u64                   oa;
        __u64                   ob;
-       int64_t                 d;
        struct xfs_rmap_irec    tmp;
 
        tmp = *kp1;
@@ -1288,9 +1287,10 @@ rmap_diffkeys(
        tmp.rm_flags &= ~XFS_RMAP_REC_FLAGS;
        ob = libxfs_rmap_irec_offset_pack(&tmp);
 
-       d = (int64_t)kp1->rm_startblock - kp2->rm_startblock;
-       if (d)
-               return d;
+       if (kp1->rm_startblock > kp2->rm_startblock)
+               return 1;
+       else if (kp2->rm_startblock > kp1->rm_startblock)
+               return -1;
 
        if (kp1->rm_owner > kp2->rm_owner)
                return 1;