summaryrefslogtreecommitdiff
path: root/fs/xfs/xfs_buf_item.c
diff options
context:
space:
mode:
authorDarrick J. Wong <djwong@kernel.org>2021-11-17 10:47:44 -0800
committerDarrick J. Wong <djwong@kernel.org>2021-12-15 17:28:45 -0800
commit461d48f2597d822301f621e7123120ed1d26f3b4 (patch)
treeefa5797bc21c5cf8af314da5bd0eb17c5c0c339d /fs/xfs/xfs_buf_item.c
parent814d045eeaea905806e68f1233b1fafca2d8efb3 (diff)
xfs: shut down filesystem if we xfs_trans_cancel with deferred work items
While debugging some very strange rmap corruption reports in connection with the online directory repair code. I root-caused the error to the following incorrect sequence: <start repair transaction> <expand directory, causing a deferred rmap to be queued> <roll transaction> <cancel transaction> Obviously, we should have committed the transaction instead of cancelling it. Thinking more broadly, however, xfs_trans_cancel should have warned us that we were throwing away work item that we already committed to performing. This is not correct, and we need to shut down the filesystem. Change xfs_trans_cancel to complain in the loudest manner if we're cancelling any transaction with deferred work items attached. Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Diffstat (limited to 'fs/xfs/xfs_buf_item.c')
0 files changed, 0 insertions, 0 deletions