Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c03edc9e authored by Brian Foster's avatar Brian Foster Committed by Darrick J. Wong
Browse files

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: default avatarBrian Foster <bfoster@redhat.com>
Reviewed-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
parent 0f37d178
Loading
Loading
Loading
Loading
+2 −9
Original line number Diff line number Diff line
@@ -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) {
		/* defer agfl frees */
		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;
		}
	}

	targs.tp = tp;