Pointer discard_thread is pointing to nowhere, using IS_ERR prevents the situation. IS_ERR also seen being used throughout the file.
Link: https://syzkaller.appspot.com/bug?id=9499bc6574cea5940e48199c2fd0732d9b11e5e1 Reported-by: [email protected] Signed-off-by: Hoi Pok Wu <[email protected]> --- fs/f2fs/segment.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index acf3d3fa4363..79978b7206b5 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -1634,7 +1634,8 @@ void f2fs_stop_discard_thread(struct f2fs_sb_info *sbi) struct task_struct *discard_thread = dcc->f2fs_issue_discard; dcc->f2fs_issue_discard = NULL; - kthread_stop(discard_thread); + if (!IS_ERR(discard_thread)) + kthread_stop(discard_thread); } } -- 2.38.0 _______________________________________________ Linux-f2fs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
