]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs: pass transaction to dfops reset/move helpers
authorBrian Foster <bfoster@redhat.com>
Fri, 5 Oct 2018 02:36:11 +0000 (21:36 -0500)
committerEric Sandeen <sandeen@redhat.com>
Fri, 5 Oct 2018 02:36:11 +0000 (21:36 -0500)
Source kernel commit: ce356d64772f920f26cd6c1b02878a737a275638

All callers pass ->t_dfops of the associated transactions. Refactor
the helpers to receive the transactions and facilitate further
cleanups between xfs_defer_ops and xfs_trans.

Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
libxfs/trans.c
libxfs/xfs_defer.c
libxfs/xfs_defer.h

index 0438ebcd0f90b85d19ac6c3bb78d41cb59662298..b58d08b5747a2ac332e62bd77bc9d48e292bd1ef 100644 (file)
@@ -165,7 +165,7 @@ xfs_trans_dup(
        if (tp->t_dfops != &tp->t_dfops_internal)
                ntp->t_dfops = tp->t_dfops;
        else
-               xfs_defer_move(ntp->t_dfops, tp->t_dfops);
+               xfs_defer_move(ntp, tp);
 
        return ntp;
 }
index 09323c0d69b20cc0d3aa721145a719f9c0591e33..5342d683e4b8f60c1602372a12ea463bfe8c808d 100644 (file)
@@ -324,9 +324,12 @@ xfs_defer_bjoin(
  */
 static void
 xfs_defer_reset(
-       struct xfs_defer_ops    *dop)
+       struct xfs_trans        *tp)
 {
+       struct xfs_defer_ops    *dop = tp->t_dfops;
+
        ASSERT(!xfs_defer_has_unfinished_work(dop));
+
        dop->dop_low = false;
        memset(dop->dop_inodes, 0, sizeof(dop->dop_inodes));
        memset(dop->dop_bufs, 0, sizeof(dop->dop_bufs));
@@ -457,7 +460,7 @@ xfs_defer_finish(
                if (error)
                        return error;
        }
-       xfs_defer_reset((*tp)->t_dfops);
+       xfs_defer_reset(*tp);
        return 0;
 }
 
@@ -575,9 +578,11 @@ xfs_defer_init(
  */
 void
 xfs_defer_move(
-       struct xfs_defer_ops    *dst,
-       struct xfs_defer_ops    *src)
+       struct xfs_trans        *dtp,
+       struct xfs_trans        *stp)
 {
+       struct xfs_defer_ops    *dst = dtp->t_dfops;
+       struct xfs_defer_ops    *src = stp->t_dfops;
        ASSERT(dst != src);
 
        list_splice_init(&src->dop_intake, &dst->dop_intake);
@@ -587,5 +592,5 @@ xfs_defer_move(
        memcpy(dst->dop_bufs, src->dop_bufs, sizeof(dst->dop_bufs));
        dst->dop_low = src->dop_low;
 
-       xfs_defer_reset(src);
+       xfs_defer_reset(stp);
 }
index da145fc04ae14a3e445a251de5632d32d7ce0cf5..d60c50498fdfbb6e0c4f5e16fa22c922f0c07255 100644 (file)
@@ -55,7 +55,7 @@ void xfs_defer_init(struct xfs_trans *tp, struct xfs_defer_ops *dop);
 bool xfs_defer_has_unfinished_work(struct xfs_defer_ops *dop);
 int xfs_defer_ijoin(struct xfs_defer_ops *dop, struct xfs_inode *ip);
 int xfs_defer_bjoin(struct xfs_defer_ops *dop, struct xfs_buf *bp);
-void xfs_defer_move(struct xfs_defer_ops *dst, struct xfs_defer_ops *src);
+void xfs_defer_move(struct xfs_trans *dtp, struct xfs_trans *stp);
 
 /* Description of a deferred type. */
 struct xfs_defer_op_type {