On 2024/3/22 12:16, Yeongjin Gil wrote:
If f2fs_evict_inode is called between freeze_super and thaw_super, the
s_writer rwsem count may become negative, resulting in hang.

CPU1 CPU2

f2fs_resize_fs()           f2fs_evict_inode()
   f2fs_freeze
     set SBI_IS_FREEZING
                              skip sb_start_intwrite
   f2fs_unfreeze
     clear SBI_IS_FREEZING
                              sb_end_intwrite

To solve this problem, the call to sb_end_write is determined by whether
sb_start_intwrite is called, rather than the current freezing status.

Reviewed-by: Sungjong Seo <[email protected]>
Reviewed-by: Sunmin Jeong <[email protected]>
Signed-off-by: Yeongjin Gil <[email protected]>

Reviewed-by: Chao Yu <[email protected]>

Thanks,


_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to