mirror of https://gitee.com/openkylin/linux.git
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:
parent
0f37d1780c
commit
c03edc9e49
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue