xfs: use internal dfops in cow blocks cancel
All callers either explicitly initialize a dfops or pass a transaction with an internal dfops. Drop the hacky old dfops replacement logic and use the one associated with the transaction. Signed-off-by: Brian Foster <bfoster@redhat.com> Reviewed-by: Bill O'Donnell <billodo@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>
This commit is contained in:
parent
e021a2e5fc
commit
1e5ae1995a
@ -483,8 +483,6 @@ xfs_reflink_cancel_cow_blocks(
|
||||
struct xfs_ifork *ifp = XFS_IFORK_PTR(ip, XFS_COW_FORK);
|
||||
struct xfs_bmbt_irec got, del;
|
||||
struct xfs_iext_cursor icur;
|
||||
struct xfs_defer_ops dfops;
|
||||
struct xfs_defer_ops *odfops = (*tpp)->t_dfops;
|
||||
int error = 0;
|
||||
|
||||
if (!xfs_is_reflink_inode(ip))
|
||||
@ -511,7 +509,8 @@ xfs_reflink_cancel_cow_blocks(
|
||||
if (error)
|
||||
break;
|
||||
} else if (del.br_state == XFS_EXT_UNWRITTEN || cancel_real) {
|
||||
xfs_defer_init(*tpp, &dfops);
|
||||
ASSERT((*tpp)->t_dfops);
|
||||
ASSERT((*tpp)->t_firstblock == NULLFSBLOCK);
|
||||
|
||||
/* Free the CoW orphan record. */
|
||||
error = xfs_refcount_free_cow_extent(ip->i_mount,
|
||||
@ -553,7 +552,6 @@ next_extent:
|
||||
/* clear tag if cow fork is emptied */
|
||||
if (!ifp->if_bytes)
|
||||
xfs_inode_clear_cowblocks_tag(ip);
|
||||
(*tpp)->t_dfops = odfops;
|
||||
return error;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user