xfs: remove the mappedbno argument to xfs_da_get_buf
authorChristoph Hellwig <hch@lst.de>
Wed, 20 Nov 2019 17:46:05 +0000 (09:46 -0800)
committerDarrick J. Wong <darrick.wong@oracle.com>
Fri, 22 Nov 2019 16:17:10 +0000 (08:17 -0800)
Use the xfs_da_get_buf_daddr function directly for the two callers
that pass a mapped disk address, and then remove the mappedbno argument.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
fs/xfs/libxfs/xfs_attr_leaf.c
fs/xfs/libxfs/xfs_da_btree.c
fs/xfs/libxfs/xfs_da_btree.h
fs/xfs/libxfs/xfs_dir2_data.c
fs/xfs/libxfs/xfs_dir2_leaf.c
fs/xfs/libxfs/xfs_dir2_node.c
fs/xfs/xfs_attr_inactive.c

index b0742c856de29f3c4b1ebe7fb8e300b5e09966d4..08d4b10ae2d536b04e3c62783bf774d54c1fa0e9 100644 (file)
@@ -1162,7 +1162,7 @@ xfs_attr3_leaf_to_node(
        if (error)
                goto out;
 
-       error = xfs_da_get_buf(args->trans, dp, blkno, -1, &bp2, XFS_ATTR_FORK);
+       error = xfs_da_get_buf(args->trans, dp, blkno, &bp2, XFS_ATTR_FORK);
        if (error)
                goto out;
 
@@ -1223,7 +1223,7 @@ xfs_attr3_leaf_create(
 
        trace_xfs_attr_leaf_create(args);
 
-       error = xfs_da_get_buf(args->trans, args->dp, blkno, -1, &bp,
+       error = xfs_da_get_buf(args->trans, args->dp, blkno, &bp,
                                            XFS_ATTR_FORK);
        if (error)
                return error;
index c00983034c787fe7534f6182b388de0bbb36783a..8c3eafe280edf0f3d1986b8d4fb653e2f3ef511f 100644 (file)
@@ -429,7 +429,7 @@ xfs_da3_node_create(
        trace_xfs_da_node_create(args);
        ASSERT(level <= XFS_DA_NODE_MAXDEPTH);
 
-       error = xfs_da_get_buf(tp, dp, blkno, -1, &bp, whichfork);
+       error = xfs_da_get_buf(tp, dp, blkno, &bp, whichfork);
        if (error)
                return error;
        bp->b_ops = &xfs_da3_node_buf_ops;
@@ -656,7 +656,7 @@ xfs_da3_root_split(
 
        dp = args->dp;
        tp = args->trans;
-       error = xfs_da_get_buf(tp, dp, blkno, -1, &bp, args->whichfork);
+       error = xfs_da_get_buf(tp, dp, blkno, &bp, args->whichfork);
        if (error)
                return error;
        node = bp->b_addr;
@@ -2577,7 +2577,6 @@ xfs_da_get_buf(
        struct xfs_trans        *tp,
        struct xfs_inode        *dp,
        xfs_dablk_t             bno,
-       xfs_daddr_t             mappedbno,
        struct xfs_buf          **bpp,
        int                     whichfork)
 {
@@ -2588,22 +2587,11 @@ xfs_da_get_buf(
        int                     error;
 
        *bpp = NULL;
-
-       if (mappedbno >= 0) {
-               bp = xfs_trans_get_buf(tp, mp->m_ddev_targp, mappedbno,
-                               XFS_FSB_TO_BB(mp,
-                                       xfs_dabuf_nfsb(mp, whichfork)), 0);
-               goto done;
-       }
-
-       error = xfs_dabuf_map(dp, bno,
-                       mappedbno == -1 ? XFS_DABUF_MAP_HOLE_OK : 0,
-                       whichfork, &mapp, &nmap);
+       error = xfs_dabuf_map(dp, bno, 0, whichfork, &mapp, &nmap);
        if (error || nmap == 0)
                goto out_free;
 
        bp = xfs_trans_get_buf_map(tp, mp->m_ddev_targp, mapp, nmap, 0);
-done:
        error = bp ? bp->b_error : -EIO;
        if (error) {
                if (bp)
index f83d18a5d5f1f435c71d081bcdf9b5bcdc259cb1..e16610d1c14f3396b25ade839974604fbd4fda29 100644 (file)
@@ -203,8 +203,7 @@ int xfs_da_grow_inode(xfs_da_args_t *args, xfs_dablk_t *new_blkno);
 int    xfs_da_grow_inode_int(struct xfs_da_args *args, xfs_fileoff_t *bno,
                              int count);
 int    xfs_da_get_buf(struct xfs_trans *trans, struct xfs_inode *dp,
-                             xfs_dablk_t bno, xfs_daddr_t mappedbno,
-                             struct xfs_buf **bp, int whichfork);
+               xfs_dablk_t bno, struct xfs_buf **bp, int whichfork);
 int    xfs_da_read_buf(struct xfs_trans *trans, struct xfs_inode *dp,
                xfs_dablk_t bno, unsigned int flags, struct xfs_buf **bpp,
                int whichfork, const struct xfs_buf_ops *ops);
index 34f87a12b09e7dbde7470be7dde78ca5469bf37e..b9eba8213180faaa861d7362fec143767c38b206 100644 (file)
@@ -679,7 +679,7 @@ xfs_dir3_data_init(
         * Get the buffer set up for the block.
         */
        error = xfs_da_get_buf(tp, dp, xfs_dir2_db_to_da(args->geo, blkno),
-                              -1, &bp, XFS_DATA_FORK);
+                              &bp, XFS_DATA_FORK);
        if (error)
                return error;
        bp->b_ops = &xfs_dir3_data_buf_ops;
index 8c6faf086ff9765bb79100b59b9eabbc76dba88f..a131b520aac7dc20ab666f6dc6ea08950bb2b62e 100644 (file)
@@ -355,7 +355,7 @@ xfs_dir3_leaf_get_buf(
               bno < xfs_dir2_byte_to_db(args->geo, XFS_DIR2_FREE_OFFSET));
 
        error = xfs_da_get_buf(tp, dp, xfs_dir2_db_to_da(args->geo, bno),
-                              -1, &bp, XFS_DATA_FORK);
+                              &bp, XFS_DATA_FORK);
        if (error)
                return error;
 
index cc871345a1413912d2c3783aa297ffd7038b7291..a0cc5e2403069fe12610f1a66e60797c4cca9dd4 100644 (file)
@@ -324,7 +324,7 @@ xfs_dir3_free_get_buf(
        struct xfs_dir3_icfree_hdr hdr;
 
        error = xfs_da_get_buf(tp, dp, xfs_dir2_db_to_da(args->geo, fbno),
-                                  -1, &bp, XFS_DATA_FORK);
+                       &bp, XFS_DATA_FORK);
        if (error)
                return error;
 
index f1cafd82ec759040865e4a361d7c1d41fb7dbe15..5ff49523d8ea1159f7b26580a84608ab4d5e06b6 100644 (file)
@@ -196,6 +196,7 @@ xfs_attr3_node_inactive(
        struct xfs_buf          *bp,
        int                     level)
 {
+       struct xfs_mount        *mp = dp->i_mount;
        struct xfs_da_blkinfo   *info;
        xfs_dablk_t             child_fsb;
        xfs_daddr_t             parent_blkno, child_blkno;
@@ -267,10 +268,16 @@ xfs_attr3_node_inactive(
                /*
                 * Remove the subsidiary block from the cache and from the log.
                 */
-               error = xfs_da_get_buf(*trans, dp, 0, child_blkno, &child_bp,
-                                      XFS_ATTR_FORK);
-               if (error)
+               child_bp = xfs_trans_get_buf(*trans, mp->m_ddev_targp,
+                               child_blkno,
+                               XFS_FSB_TO_BB(mp, mp->m_attr_geo->fsbcount), 0);
+               if (!child_bp)
+                       return -EIO;
+               error = bp->b_error;
+               if (error) {
+                       xfs_trans_brelse(*trans, child_bp);
                        return error;
+               }
                xfs_trans_binval(*trans, child_bp);
 
                /*
@@ -311,6 +318,7 @@ xfs_attr3_root_inactive(
        struct xfs_trans        **trans,
        struct xfs_inode        *dp)
 {
+       struct xfs_mount        *mp = dp->i_mount;
        struct xfs_da_blkinfo   *info;
        struct xfs_buf          *bp;
        xfs_daddr_t             blkno;
@@ -353,9 +361,15 @@ xfs_attr3_root_inactive(
        /*
         * Invalidate the incore copy of the root block.
         */
-       error = xfs_da_get_buf(*trans, dp, 0, blkno, &bp, XFS_ATTR_FORK);
-       if (error)
+       bp = xfs_trans_get_buf(*trans, mp->m_ddev_targp, blkno,
+                       XFS_FSB_TO_BB(mp, mp->m_attr_geo->fsbcount), 0);
+       if (!bp)
+               return -EIO;
+       error = bp->b_error;
+       if (error) {
+               xfs_trans_brelse(*trans, bp);
                return error;
+       }
        xfs_trans_binval(*trans, bp);   /* remove from cache */
        /*
         * Commit the invalidate and start the next transaction.