mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 20:22:09 +00:00
fs/file_table.c:fput(): add comment
A missed update to "fput: task_work_add() can fail if the caller has passed exit_task_work()". Cc: "Eric W. Biederman" <ebiederm@xmission.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Andrey Vagin <avagin@openvz.org> Cc: David Howells <dhowells@redhat.com> Cc: Oleg Nesterov <oleg@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
bb458c644a
commit
64372501e2
@ -313,6 +313,12 @@ void fput(struct file *file)
|
||||
init_task_work(&file->f_u.fu_rcuhead, ____fput);
|
||||
if (!task_work_add(task, &file->f_u.fu_rcuhead, true))
|
||||
return;
|
||||
/*
|
||||
* After this task has run exit_task_work(),
|
||||
* task_work_add() will fail. free_ipc_ns()->
|
||||
* shm_destroy() can do this. Fall through to delayed
|
||||
* fput to avoid leaking *file.
|
||||
*/
|
||||
}
|
||||
spin_lock_irqsave(&delayed_fput_lock, flags);
|
||||
list_add(&file->f_u.fu_list, &delayed_fput_list);
|
||||
|
Loading…
Reference in New Issue
Block a user