f2fs: fix to unlock page correctly in error path of is_alive()
Subsystems (2)
Chao Yu
maintainerPATCH v2 1/1 f2fs: fix to unlock page correctly in error path of is_alive()
As Pavel Machek reported in below link [1]:
After commit 77900c45ee5c ("f2fs: fix to do sanity check in is_alive()"), node page should be unlock via calling f2fs_put_page() in the error path of is_alive(), otherwise, f2fs may hang when it tries to lock the node page, fix it.
[1] https://lore.kernel.org/stable/[email protected]/
Fixes 77900c45ee5c ("f2fs: fix to do sanity check in is_alive()")
Cc <[email protected]>
Reported-by Pavel Machek <[email protected]>
Signed-off-by Pavel Machek <[email protected]>
Signed-off-by Chao Yu <[email protected]>
---
v2:
- Cc stable-kernel mailing list.
fs/f2fs/gc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
fs/f2fs/gc.c +3 -1
@@ -1038,8 +1038,10 @@ static bool is_alive(struct f2fs_sb_info *sbi, struct f2fs_summary *sum,set_sbi_flag (sbi,SBI_NEED_FSCK ); } -if (f2fs_check_nid_range (sbi, dni->ino)) +if (f2fs_check_nid_range (sbi, dni->ino)) { +f2fs_put_page (node_page,1 );return false; + } *nofs =ofs_of_node (node_page); source_blkaddr =data_blkaddr (NULL , node_page, ofs_in_node);
Signature · 1 line
2.32.0