f2fs: ro: compress: fix to avoid caching unaligned extent
authorChao Yu <chao@kernel.org>
Mon, 26 Feb 2024 07:35:38 +0000 (15:35 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 4 Mar 2024 17:51:52 +0000 (09:51 -0800)
commit4b99ecd304290c4ef55666a62c89dfb2dbf0b2cd
treef15f955653a1d6aa9eae015cf5284ffe240ac08c
parent2fc2bcc8d39945ac9e26114280d2b6d1e624825c
f2fs: ro: compress: fix to avoid caching unaligned extent

Mapping info from dump.f2fs:
i_addr[0x2d] cluster flag     [0xfffffffe : 4294967294]
i_addr[0x2e]                  [0x   10428 : 66600]
i_addr[0x2f]                  [0x   10429 : 66601]
i_addr[0x30]                  [0x   1042a : 66602]

f2fs_io fiemap 37 1 /mnt/f2fs/disk-58390c8c.raw

Previsouly, it missed to align fofs and ofs_in_node to cluster_size,
result in adding incorrect read extent cache, fix it.

Before:
f2fs_update_read_extent_tree_range: dev = (253,48), ino = 5, pgofs = 37, len = 4, blkaddr = 66600, c_len = 3

After:
f2fs_update_read_extent_tree_range: dev = (253,48), ino = 5, pgofs = 36, len = 4, blkaddr = 66600, c_len = 3

Fixes: 94afd6d6e525 ("f2fs: extent cache: support unaligned extent")
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/compress.c
fs/f2fs/f2fs.h
fs/f2fs/node.c