]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
xfs: use xfs_iext_get_extent instead of open coding it
authorChristoph Hellwig <hch@lst.de>
Tue, 17 Oct 2017 21:16:20 +0000 (14:16 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Thu, 26 Oct 2017 22:38:20 +0000 (15:38 -0700)
This avoids exposure to details of the extent list implementation.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
fs/xfs/libxfs/xfs_bmap.c
fs/xfs/xfs_trace.h

index a3cc8afed367c7e18d67439e190b35685a79b5f8..e7146026e8f6f94ace398f3306787e24a54c50c6 100644 (file)
@@ -1454,7 +1454,7 @@ xfs_bmap_last_extent(
                return 0;
        }
 
-       xfs_bmbt_get_all(xfs_iext_get_ext(ifp, nextents - 1), rec);
+       xfs_iext_get_extent(ifp, nextents - 1, rec);
        *is_empty = 0;
        return 0;
 }
@@ -1540,7 +1540,6 @@ xfs_bmap_one_block(
        xfs_inode_t     *ip,            /* incore inode */
        int             whichfork)      /* data or attr fork */
 {
-       xfs_bmbt_rec_host_t *ep;        /* ptr to fork's extent */
        xfs_ifork_t     *ifp;           /* inode fork pointer */
        int             rval;           /* return value */
        xfs_bmbt_irec_t s;              /* internal version of extent */
@@ -1555,8 +1554,7 @@ xfs_bmap_one_block(
                return 0;
        ifp = XFS_IFORK_PTR(ip, whichfork);
        ASSERT(ifp->if_flags & XFS_IFEXTENTS);
-       ep = xfs_iext_get_ext(ifp, 0);
-       xfs_bmbt_get_all(ep, &s);
+       xfs_iext_get_extent(ifp, 0, &s);
        rval = s.br_startoff == 0 && s.br_blockcount == 1;
        if (rval && whichfork == XFS_DATA_FORK)
                ASSERT(XFS_ISIZE(ip) == ip->i_mount->m_sb.sb_blocksize);
@@ -1642,7 +1640,7 @@ xfs_bmap_add_extent_delay_real(
         */
        if (bma->idx > 0) {
                state |= BMAP_LEFT_VALID;
-               xfs_bmbt_get_all(xfs_iext_get_ext(ifp, bma->idx - 1), &LEFT);
+               xfs_iext_get_extent(ifp, bma->idx - 1, &LEFT);
 
                if (isnullstartblock(LEFT.br_startblock))
                        state |= BMAP_LEFT_DELAY;
@@ -1662,7 +1660,7 @@ xfs_bmap_add_extent_delay_real(
         */
        if (bma->idx < xfs_iext_count(ifp) - 1) {
                state |= BMAP_RIGHT_VALID;
-               xfs_bmbt_get_all(xfs_iext_get_ext(ifp, bma->idx + 1), &RIGHT);
+               xfs_iext_get_extent(ifp, bma->idx + 1, &RIGHT);
 
                if (isnullstartblock(RIGHT.br_startblock))
                        state |= BMAP_RIGHT_DELAY;
@@ -2209,7 +2207,7 @@ xfs_bmap_add_extent_unwritten_real(
         */
        if (*idx > 0) {
                state |= BMAP_LEFT_VALID;
-               xfs_bmbt_get_all(xfs_iext_get_ext(ifp, *idx - 1), &LEFT);
+               xfs_iext_get_extent(ifp, *idx - 1, &LEFT);
 
                if (isnullstartblock(LEFT.br_startblock))
                        state |= BMAP_LEFT_DELAY;
@@ -2229,7 +2227,7 @@ xfs_bmap_add_extent_unwritten_real(
         */
        if (*idx < xfs_iext_count(ifp) - 1) {
                state |= BMAP_RIGHT_VALID;
-               xfs_bmbt_get_all(xfs_iext_get_ext(ifp, *idx + 1), &RIGHT);
+               xfs_iext_get_extent(ifp, *idx + 1, &RIGHT);
                if (isnullstartblock(RIGHT.br_startblock))
                        state |= BMAP_RIGHT_DELAY;
        }
@@ -2703,7 +2701,7 @@ xfs_bmap_add_extent_hole_delay(
         */
        if (*idx > 0) {
                state |= BMAP_LEFT_VALID;
-               xfs_bmbt_get_all(xfs_iext_get_ext(ifp, *idx - 1), &left);
+               xfs_iext_get_extent(ifp, *idx - 1, &left);
 
                if (isnullstartblock(left.br_startblock))
                        state |= BMAP_LEFT_DELAY;
@@ -2715,7 +2713,7 @@ xfs_bmap_add_extent_hole_delay(
         */
        if (*idx < xfs_iext_count(ifp)) {
                state |= BMAP_RIGHT_VALID;
-               xfs_bmbt_get_all(xfs_iext_get_ext(ifp, *idx), &right);
+               xfs_iext_get_extent(ifp, *idx, &right);
 
                if (isnullstartblock(right.br_startblock))
                        state |= BMAP_RIGHT_DELAY;
@@ -2867,7 +2865,7 @@ xfs_bmap_add_extent_hole_real(
         */
        if (*idx > 0) {
                state |= BMAP_LEFT_VALID;
-               xfs_bmbt_get_all(xfs_iext_get_ext(ifp, *idx - 1), &left);
+               xfs_iext_get_extent(ifp, *idx - 1, &left);
                if (isnullstartblock(left.br_startblock))
                        state |= BMAP_LEFT_DELAY;
        }
@@ -2878,7 +2876,7 @@ xfs_bmap_add_extent_hole_real(
         */
        if (*idx < xfs_iext_count(ifp)) {
                state |= BMAP_RIGHT_VALID;
-               xfs_bmbt_get_all(xfs_iext_get_ext(ifp, *idx), &right);
+               xfs_iext_get_extent(ifp, *idx, &right);
                if (isnullstartblock(right.br_startblock))
                        state |= BMAP_RIGHT_DELAY;
        }
@@ -4207,10 +4205,8 @@ xfs_bmapi_allocate(
        if (bma->wasdel) {
                bma->length = (xfs_extlen_t)bma->got.br_blockcount;
                bma->offset = bma->got.br_startoff;
-               if (bma->idx) {
-                       xfs_bmbt_get_all(xfs_iext_get_ext(ifp, bma->idx - 1),
-                                        &bma->prev);
-               }
+               if (bma->idx)
+                       xfs_iext_get_extent(ifp, bma->idx - 1, &bma->prev);
        } else {
                bma->length = XFS_FILBLKS_MIN(bma->length, MAXEXTLEN);
                if (!bma->eof)
@@ -4307,7 +4303,7 @@ xfs_bmapi_allocate(
         * or xfs_bmap_add_extent_hole_real might have merged it into one of
         * the neighbouring ones.
         */
-       xfs_bmbt_get_all(xfs_iext_get_ext(ifp, bma->idx), &bma->got);
+       xfs_iext_get_extent(ifp, bma->idx, &bma->got);
 
        ASSERT(bma->got.br_startoff <= bma->offset);
        ASSERT(bma->got.br_startoff + bma->got.br_blockcount >=
@@ -4388,7 +4384,7 @@ xfs_bmapi_convert_unwritten(
         * xfs_bmap_add_extent_unwritten_real might have merged it into one
         * of the neighbouring ones.
         */
-       xfs_bmbt_get_all(xfs_iext_get_ext(ifp, bma->idx), &bma->got);
+       xfs_iext_get_extent(ifp, bma->idx, &bma->got);
 
        /*
         * We may have combined previously unwritten space with written space,
@@ -5587,8 +5583,8 @@ __xfs_bunmapi(
                                        del.br_blockcount : mod;
                                if (bno < got.br_startoff) {
                                        if (--lastx >= 0)
-                                               xfs_bmbt_get_all(xfs_iext_get_ext(
-                                                       ifp, lastx), &got);
+                                               xfs_iext_get_extent(ifp, lastx,
+                                                               &got);
                                }
                                continue;
                        }
index bb5514688d470b046e0f125b2832ba2d30b3d34d..0a8999a310b94e08da014718cfd1ff8de7798482 100644 (file)
@@ -277,7 +277,7 @@ DECLARE_EVENT_CLASS(xfs_bmap_class,
                struct xfs_bmbt_irec    r;
 
                ifp = xfs_iext_state_to_fork(ip, state);
-               xfs_bmbt_get_all(xfs_iext_get_ext(ifp, idx), &r);
+               xfs_iext_get_extent(ifp, idx, &r);
                __entry->dev = VFS_I(ip)->i_sb->s_dev;
                __entry->ino = ip->i_ino;
                __entry->idx = idx;