linux/fs/f2fs
Chao Yu 4635b46af2 f2fs: fix potential hangtask in f2fs_trace_pid
As Jia-Ju Bai reported:

"According to fs/f2fs/trace.c, the kernel module may sleep under a spinlock.
The function call path is:
f2fs_trace_pid (acquire the spinlock)
   f2fs_radix_tree_insert
     cond_resched --> may sleep

I do not find a good way to fix it, so I only report.
This possible bug is found by my static analysis tool (DSAC) and my code
review."

Obviously, it's problemetic to schedule in critical region of spinlock,
which will cause uninterruptable sleep if there is no waker.

This patch changes to use mutex lock intead of spinlock to avoid this
condition.

Reported-by: Jia-Ju Bai <baijiaju1990@gmail.com>
Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2018-01-02 19:27:30 -08:00
..
acl.c posix_acl: convert posix_acl.a_refcount from atomic_t to refcount_t 2018-01-02 19:27:28 -08:00
acl.h f2fs: remove dead code f2fs_check_acl 2016-09-14 16:52:36 -07:00
checkpoint.c f2fs: inject fault to kzalloc 2018-01-02 19:27:29 -08:00
data.c f2fs: clean up f2fs_map_blocks 2018-01-02 19:27:30 -08:00
debug.c f2fs: inject fault to kzalloc 2018-01-02 19:27:29 -08:00
dir.c f2fs: introduce sysfs readdir_ra to readahead inode block in readdir 2018-01-02 19:27:27 -08:00
extent_cache.c f2fs: fix a bug caused by NULL extent tree 2017-05-23 21:07:18 -07:00
f2fs.h f2fs: no need return value in restore summary process 2018-01-02 19:27:30 -08:00
file.c f2fs: don't return value in truncate_data_blocks_range 2018-01-02 19:27:30 -08:00
gc.c Rename superblock flags (MS_xyz -> SB_xyz) 2017-11-27 13:05:09 -08:00
gc.h f2fs: fix potential overflow when adjusting GC cycle 2017-08-15 10:40:14 -07:00
hash.c f2fs: check entire encrypted bigname when finding a dentry 2017-05-04 11:44:35 -04:00
inline.c f2fs: enhance multiple device flush 2017-10-10 12:49:53 -07:00
inode.c f2fs-for-4.15-rc1 2017-11-16 12:10:21 -08:00
Kconfig f2fs: add mount option to select fault injection ratio 2016-05-07 10:32:22 -07:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
namei.c f2fs: inject fault to kzalloc 2018-01-02 19:27:29 -08:00
node.c f2fs: no need return value in restore summary process 2018-01-02 19:27:30 -08:00
node.h f2fs: limit # of inmemory pages 2017-10-26 10:44:21 +02:00
recovery.c f2fs: remove unused parameter 2018-01-02 19:27:27 -08:00
segment.c f2fs: no need return value in restore summary process 2018-01-02 19:27:30 -08:00
segment.h f2fs: check curseg space before foreground GC 2017-11-05 16:42:04 -08:00
shrinker.c f2fs: obsolete ALLOC_NID_LIST list 2017-10-10 12:49:53 -07:00
super.c f2fs: fix error handling in fill_super 2018-01-02 19:27:30 -08:00
sysfs.c f2fs: introduce sysfs readdir_ra to readahead inode block in readdir 2018-01-02 19:27:27 -08:00
trace.c f2fs: fix potential hangtask in f2fs_trace_pid 2018-01-02 19:27:30 -08:00
trace.h f2fs: add sbi and page pointer in f2fs_io_info 2015-05-28 15:41:32 -07:00
xattr.c f2fs: inject fault to kzalloc 2018-01-02 19:27:29 -08:00
xattr.h f2fs: guard macro variables with braces 2017-04-10 19:48:10 -07:00