]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
jbd2: flush filesystem device before updating tail sequence
authorZhang Yi <yi.zhang@huawei.com>
Tue, 3 Dec 2024 01:44:07 +0000 (09:44 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Jan 2025 12:34:37 +0000 (13:34 +0100)
commit5af095cb862bf39914d51551917105b99c290e08
tree7ea27297d767df48ebb96260852cb0e012baf93d
parent62834f5bf5840c152ada57442129caae8c0443a4
jbd2: flush filesystem device before updating tail sequence

[ Upstream commit a0851ea9cd555c333795b85ddd908898b937c4e1 ]

When committing transaction in jbd2_journal_commit_transaction(), the
disk caches for the filesystem device should be flushed before updating
the journal tail sequence. However, this step is missed if the journal
is not located on the filesystem device. As a result, the filesystem may
become inconsistent following a power failure or system crash. Fix it by
ensuring that the filesystem device is flushed appropriately.

Fixes: 3339578f0578 ("jbd2: cleanup journal tail after transaction commit")
Signed-off-by: Zhang Yi <yi.zhang@huawei.com>
Link: https://lore.kernel.org/r/20241203014407.805916-3-yi.zhang@huaweicloud.com
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/jbd2/commit.c