]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
xfs: don't lose solo superblock counter update transactions
authorDarrick J. Wong <djwong@kernel.org>
Fri, 7 Feb 2025 19:26:48 +0000 (11:26 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 17 Feb 2025 09:05:45 +0000 (10:05 +0100)
commitef24207c99cb6749a6de2ada3c2b9b54d30c9a5d
tree2e4f473c6996a5f81304edde4f3909dce2397283
parentee93e08d4c8be850e5283098e428663684c9a6c1
xfs: don't lose solo superblock counter update transactions

commit c817aabd3b08e8770d89a9a29ae80fead561a1a1 upstream

Superblock counter updates are tracked via per-transaction counters in
the xfs_trans object.  These changes are then turned into dirty log
items in xfs_trans_apply_sb_deltas just prior to commiting the log items
to the CIL.

However, updating the per-transaction counter deltas do not cause
XFS_TRANS_DIRTY to be set on the transaction.  In other words, a pure sb
counter update will be silently discarded if there are no other dirty
log items attached to the transaction.

This is currently not the case anywhere in the filesystem because sb
counter updates always dirty at least one other metadata item, but let's
not leave a logic bomb.

Cc: <stable@vger.kernel.org> # v2.6.35
Fixes: 0924378a689ccb ("xfs: split out iclog writing from xfs_trans_commit()")
Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/xfs/xfs_trans.c