diff options
| author | Yeongjin Gil <[email protected]> | 2024-03-22 13:16:39 +0900 |
|---|---|---|
| committer | Jaegeuk Kim <[email protected]> | 2024-03-26 16:52:26 +0000 |
| commit | 3127f1010c9b27d925e83081d413ea7fc361abb0 (patch) | |
| tree | 98fff95dfbadc3412f971cab9ad0efa6af63a6fa /tools/perf/scripts/python/libxed.py | |
| parent | ee745e4736fbf33079d0d0808e1343c2280fd59a (diff) | |
f2fs: Prevent s_writer rw_sem count mismatch in f2fs_evict_inode
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]>
Signed-off-by: Jaegeuk Kim <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/libxed.py')
0 files changed, 0 insertions, 0 deletions