xfs: remove unused btree cursor bc_private.a.dfops field
authorBrian Foster <bfoster@redhat.com>
Thu, 12 Jul 2018 05:26:17 +0000 (22:26 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Thu, 12 Jul 2018 05:26:17 +0000 (22:26 -0700)
The xfs_btree_cur.bc_private.a.dfops field is only ever initialized
by the refcountbt cursor init function. The only caller of that
function with a non-NULL dfops is from deferred completion context,
which already has attached to ->t_dfops.

In addition to that, the only actual reference of a.dfops is the
cursor duplication function, which means the field is effectively
unused.

Remove the dfops field from the bc_private.a union. Any future users
can acquire the dfops from the transaction. This patch does not
change behavior.

Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-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_btree.h
fs/xfs/libxfs/xfs_refcount.c
fs/xfs/libxfs/xfs_refcount_btree.c
fs/xfs/libxfs/xfs_refcount_btree.h
fs/xfs/scrub/common.c
fs/xfs/xfs_fsmap.c
fs/xfs/xfs_reflink.c

index cc94ac765dec3a9ee2b58197face7a813755279a..b986a8fc8d4001bffab34eed73add13331b556e9 100644 (file)
@@ -209,7 +209,6 @@ typedef struct xfs_btree_cur
        union {
                struct {                        /* needed for BNO, CNT, INO */
                        struct xfs_buf  *agbp;  /* agf/agi buffer pointer */
-                       struct xfs_defer_ops *dfops;    /* deferred updates */
                        xfs_agnumber_t  agno;   /* ag number */
                        union xfs_btree_cur_private     priv;
                } a;
index 9dda6fd0bb13837d051f2de5c04cc1802d210a9d..8e330a1960601c15309ce9df34470f500c7a2165 100644 (file)
@@ -1132,7 +1132,7 @@ xfs_refcount_finish_one(
                if (!agbp)
                        return -EFSCORRUPTED;
 
-               rcur = xfs_refcountbt_init_cursor(mp, tp, agbp, agno, dfops);
+               rcur = xfs_refcountbt_init_cursor(mp, tp, agbp, agno);
                if (!rcur) {
                        error = -ENOMEM;
                        goto out_cur;
@@ -1666,7 +1666,7 @@ xfs_refcount_recover_cow_leftovers(
                error = -ENOMEM;
                goto out_trans;
        }
-       cur = xfs_refcountbt_init_cursor(mp, tp, agbp, agno, NULL);
+       cur = xfs_refcountbt_init_cursor(mp, tp, agbp, agno);
 
        /* Find all the leftover CoW staging extents. */
        memset(&low, 0, sizeof(low));
index b71937982c5b2cca40ee89b89babe60bea97603d..393aa88f93db1eca64265b0fc44dc1c4f6982a26 100644 (file)
@@ -27,8 +27,7 @@ xfs_refcountbt_dup_cursor(
        struct xfs_btree_cur    *cur)
 {
        return xfs_refcountbt_init_cursor(cur->bc_mp, cur->bc_tp,
-                       cur->bc_private.a.agbp, cur->bc_private.a.agno,
-                       cur->bc_private.a.dfops);
+                       cur->bc_private.a.agbp, cur->bc_private.a.agno);
 }
 
 STATIC void
@@ -323,8 +322,7 @@ xfs_refcountbt_init_cursor(
        struct xfs_mount        *mp,
        struct xfs_trans        *tp,
        struct xfs_buf          *agbp,
-       xfs_agnumber_t          agno,
-       struct xfs_defer_ops    *dfops)
+       xfs_agnumber_t          agno)
 {
        struct xfs_agf          *agf = XFS_BUF_TO_AGF(agbp);
        struct xfs_btree_cur    *cur;
@@ -344,7 +342,6 @@ xfs_refcountbt_init_cursor(
 
        cur->bc_private.a.agbp = agbp;
        cur->bc_private.a.agno = agno;
-       cur->bc_private.a.dfops = dfops;
        cur->bc_flags |= XFS_BTREE_CRC_BLOCKS;
 
        cur->bc_private.a.priv.refc.nr_ops = 0;
index d2852b6e1fa8a888eef79934de814b40e5a2ea4c..801c2c7732fd7985e8ff0c230718f6aaa49764dd 100644 (file)
@@ -44,8 +44,8 @@ struct xfs_mount;
                 ((index) - 1) * sizeof(xfs_refcount_ptr_t)))
 
 extern struct xfs_btree_cur *xfs_refcountbt_init_cursor(struct xfs_mount *mp,
-               struct xfs_trans *tp, struct xfs_buf *agbp, xfs_agnumber_t agno,
-               struct xfs_defer_ops *dfops);
+               struct xfs_trans *tp, struct xfs_buf *agbp,
+               xfs_agnumber_t agno);
 extern int xfs_refcountbt_maxrecs(int blocklen, bool leaf);
 extern void xfs_refcountbt_compute_maxlevels(struct xfs_mount *mp);
 
index 70e70c69f83fa8de24fbafce2cb9f0d5e1f04a48..385fa5b9c878773aa9cc5b892421caa93d06fc4c 100644 (file)
@@ -499,7 +499,7 @@ xfs_scrub_ag_btcur_init(
        /* Set up a refcountbt cursor for cross-referencing. */
        if (sa->agf_bp && xfs_sb_version_hasreflink(&mp->m_sb)) {
                sa->refc_cur = xfs_refcountbt_init_cursor(mp, sc->tp,
-                               sa->agf_bp, agno, NULL);
+                               sa->agf_bp, agno);
                if (!sa->refc_cur)
                        goto err;
        }
index c7157bc48bd192ea60650577232ea87e8bfbbf02..297d7ce2901e3dc6c448089b6d0c28b7d71f100b 100644 (file)
@@ -214,7 +214,7 @@ xfs_getfsmap_is_shared(
        /* Are there any shared blocks here? */
        flen = 0;
        cur = xfs_refcountbt_init_cursor(mp, tp, info->agf_bp,
-                       info->agno, NULL);
+                       info->agno);
 
        error = xfs_refcount_find_shared(cur, rec->rm_startblock,
                        rec->rm_blockcount, &fbno, &flen, false);
index 0ac0706c98e8f945d082d25d175bfd8fe1d59755..90457c2a7569e887d2870b6925c8835e8ad5deff 100644 (file)
@@ -157,7 +157,7 @@ xfs_reflink_find_shared(
        if (!agbp)
                return -ENOMEM;
 
-       cur = xfs_refcountbt_init_cursor(mp, tp, agbp, agno, NULL);
+       cur = xfs_refcountbt_init_cursor(mp, tp, agbp, agno);
 
        error = xfs_refcount_find_shared(cur, agbno, aglen, fbno, flen,
                        find_end_of_shared);