f2fs: compress: fix to cover normal cluster write with cp_rwsem
authorChao Yu <chao@kernel.org>
Fri, 12 Jan 2024 19:41:28 +0000 (03:41 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 6 Feb 2024 02:58:38 +0000 (18:58 -0800)
commitfd244524c2cf07b5f4c3fe8abd6a99225c76544b
treebd1c546951dca99ff0e7cc075ce8c332aadc83b2
parent8a430dd49e9cb021372b0ad91e60aeef9c6ced00
f2fs: compress: fix to cover normal cluster write with cp_rwsem

When we overwrite compressed cluster w/ normal cluster, we should
not unlock cp_rwsem during f2fs_write_raw_pages(), otherwise data
will be corrupted if partial blocks were persisted before CP & SPOR,
due to cluster metadata wasn't updated atomically.

Fixes: 4c8ff7095bef ("f2fs: support data compression")
Reviewed-by: Daeho Jeong <daehojeong@google.com>
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/compress.c
fs/f2fs/data.c