f2fs: compress: fix to cover f2fs_disable_compressed_file() w/ i_sem
authorChao Yu <chao@kernel.org>
Mon, 22 Jan 2024 02:23:13 +0000 (10:23 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 6 Feb 2024 02:58:40 +0000 (18:58 -0800)
commit2f9420d3a94aeebd92db88f00f4f2f1a3bd3f6cf
tree13975cd92e10863100a223ec2358a8e8d94ed20e
parent0b8eb814e05885cde53c1d56ee012a029b8413e6
f2fs: compress: fix to cover f2fs_disable_compressed_file() w/ i_sem

- f2fs_disable_compressed_file
  - check inode_has_data
- f2fs_file_mmap
- mkwrite
 - f2fs_get_block_locked
 : update metadata in compressed
   inode's disk layout
  - fi->i_flags &= ~F2FS_COMPR_FL
  - clear_inode_flag(inode, FI_COMPRESSED_FILE);

we should use i_sem lock to prevent above race case.

Fixes: 4c8ff7095bef ("f2fs: support data compression")
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/f2fs.h