]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
f2fs: compress: fix to cover {reserve,release}_compress_blocks() w/ cp_rwsem lock
authorChao Yu <chao@kernel.org>
Mon, 6 May 2024 10:41:39 +0000 (18:41 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 16 Jun 2024 11:39:39 +0000 (13:39 +0200)
commitb5bac43875aa27ec032dbbb86173baae6dce6182
tree73dca56d8cc2b203f186504764bfed91a3fafe22
parent8a8b95be1649634225f4bd9b989540aa8f92cc6d
f2fs: compress: fix to cover {reserve,release}_compress_blocks() w/ cp_rwsem lock

[ Upstream commit 0a4ed2d97cb6d044196cc3e726b6699222b41019 ]

It needs to cover {reserve,release}_compress_blocks() w/ cp_rwsem lock
to avoid racing with checkpoint, otherwise, filesystem metadata including
blkaddr in dnode, inode fields and .total_valid_block_count may be
corrupted after SPO case.

Fixes: ef8d563f184e ("f2fs: introduce F2FS_IOC_RELEASE_COMPRESS_BLOCKS")
Fixes: c75488fb4d82 ("f2fs: introduce F2FS_IOC_RESERVE_COMPRESS_BLOCKS")
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/f2fs/file.c