diff --git a/fs/xfs/libxfs/xfs_refcount.c b/fs/xfs/libxfs/xfs_refcount.c index 8e330a1960601c15309ce9df34470f500c7a2165..df67821fb5f4c15e6955434a1c9eabe6d8e1c57e 100644 --- a/fs/xfs/libxfs/xfs_refcount.c +++ b/fs/xfs/libxfs/xfs_refcount.c @@ -1692,18 +1692,19 @@ xfs_refcount_recover_cow_leftovers( /* Free the orphan record */ xfs_defer_init(&dfops, &fsb); + tp->t_dfops = &dfops; agbno = rr->rr_rrec.rc_startblock - XFS_REFC_COW_START; fsb = XFS_AGB_TO_FSB(mp, agno, agbno); - error = xfs_refcount_free_cow_extent(mp, &dfops, fsb, + error = xfs_refcount_free_cow_extent(mp, tp->t_dfops, fsb, rr->rr_rrec.rc_blockcount); if (error) goto out_defer; /* Free the block. */ - xfs_bmap_add_free(mp, &dfops, fsb, + xfs_bmap_add_free(mp, tp->t_dfops, fsb, rr->rr_rrec.rc_blockcount, NULL); - error = xfs_defer_finish(&tp, &dfops); + error = xfs_defer_finish(&tp, tp->t_dfops); if (error) goto out_defer; @@ -1717,7 +1718,7 @@ xfs_refcount_recover_cow_leftovers( return error; out_defer: - xfs_defer_cancel(&dfops); + xfs_defer_cancel(tp->t_dfops); out_trans: xfs_trans_cancel(tp); out_free: