diff options
| author | Christian Brauner <brauner@kernel.org> | 2026-09-10 17:48:05 +0200 |
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2026-10-05 13:11:48 +0200 |
| commit | 056069eb2b6614a02538defa3a23fea9a2ec0d79 (patch) | |
| tree | 0ab56ef43b299def30cc075959bb0b254a114d83 /tools/lib/python | |
| parent | c8d9b40eabf07d822f212bd012e717f3947c4d7b (diff) | |
| download | linux-next-056069eb2b6614a02538defa3a23fea9a2ec0d79.tar.gz linux-next-056069eb2b6614a02538defa3a23fea9a2ec0d79.zip | |
fs: make close_range() synchronous
__range_close() closes through filp_close() so every file the caller
held the last reference to is punted to task work. That costs one
cmpxchg per file plus a list entry for any later task_work_cancel() to
search under ->pi_lock. close_range(2) exists to close many descriptors
in one go fast. So convert it to the same synchronous treatment as
close(2) and close_files().
Flush and put each file inline while ->file_lock is dropped.
close_range(2) now behaves like close(2).
Link: https://patch.msgid.link/20260910-work-coredump-unlock-self-v4-7-a5c1800dc930@kernel.org
Reviewed-by: NeilBrown <neil@brown.name>
Reviewed-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
Diffstat (limited to 'tools/lib/python')
0 files changed, 0 insertions, 0 deletions
