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)
committerJaegeuk Kim <jaegeuk@kernel.org>
Fri, 10 May 2024 03:38:28 +0000 (03:38 +0000)
commit0a4ed2d97cb6d044196cc3e726b6699222b41019
treeac9700f940eaa9f414f720bb093d5ba2ff717aaf
parent043c832371cd9023fbd725138ddc6c7f288dc469
f2fs: compress: fix to cover {reserve,release}_compress_blocks() w/ cp_rwsem lock

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>
fs/f2fs/file.c