xfs: don't assert fail on transaction cancel with deferred ops
authorDave Chinner <dchinner@redhat.com>
Fri, 10 Feb 2023 17:12:06 +0000 (04:12 +1100)
committerDave Chinner <dchinner@redhat.com>
Fri, 10 Feb 2023 17:12:06 +0000 (04:12 +1100)
commit55d5c3a386d74d3f374023c8fa386f524a9192e8
tree38604f215bb349d2d93df3cc2460e6517817fb16
parent692b6cddeb65a5170c1e63d25b1ffb7822e80f7d
xfs: don't assert fail on transaction cancel with deferred ops

We can error out of an allocation transaction when updating BMBT
blocks when things go wrong. This can be a btree corruption, and
unexpected ENOSPC, etc. In these cases, we already have deferred ops
queued for the first allocation that has been done, and we just want
to cancel out the transaction and shut down the filesystem on error.

In fact, we do just that for production systems - the assert that we
can't have a transaction with defer ops attached unless we are
already shut down is bogus and gets in the way of debugging
whatever issue is actually causing the transaction to be cancelled.

Remove the assert because it is causing spurious test failures to
hang test machines.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Allison Henderson <allison.henderson@oracle.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
fs/xfs/xfs_trans.c