xfs: always defer agfl block frees

The AGFL fixup code conditionally defers block frees from the free
list based on whether the current transaction has an associated
xfs_defer_ops structure. Now that dfops is embedded in the
transaction and the internal dfops is used unconditionally, this
invariant is always true.

Remove the now dead logic to check for ->t_dfops in
xfs_alloc_fix_freelist() and unconditionally defer AGFL block frees.

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>
This commit is contained in:
Brian Foster 2018-08-01 07:20:35 -07:00 committed by Darrick J. Wong
parent 0f37d1780c
commit c03edc9e49
1 changed files with 2 additions and 9 deletions

View File

@ -2323,15 +2323,8 @@ xfs_alloc_fix_freelist(
if (error)
goto out_agbp_relse;
/* defer agfl frees if dfops is provided */
if (tp->t_dfops) {
xfs_defer_agfl_block(tp, args->agno, bno, &targs.oinfo);
} else {
error = xfs_free_agfl_block(tp, args->agno, bno, agbp,
&targs.oinfo);
if (error)
goto out_agbp_relse;
}
/* defer agfl frees */
xfs_defer_agfl_block(tp, args->agno, bno, &targs.oinfo);
}
targs.tp = tp;