Konstantin Khlebnikov
af0883f9dc
proc: use down_read_killable mmap_sem for /proc/pid/maps
...
[ Upstream commit 8a713e7df3352b8d9392476e9cf29e4e185dac32 ]
Do not remain stuck forever if something goes wrong. Using a killable
lock permits cleanup of stuck tasks and simplifies investigation.
This function is also used for /proc/pid/smaps.
Link: http://lkml.kernel.org/r/156007493160.3335.14447544314127417266.stgit@buzz
Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Reviewed-by: Roman Gushchin <guro@fb.com>
Reviewed-by: Cyrill Gorcunov <gorcunov@gmail.com>
Reviewed-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Michal Koutný <mkoutny@suse.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-07-31 07:27:09 +02:00
..
array.c
fs/proc/array.c: allow reporting eip/esp for all coredumping threads
2019-07-03 13:14:44 +02:00
base.c
proc: use down_read_killable mmap_sem for /proc/pid/map_files
2019-07-31 07:27:09 +02:00
cmdline.c
proc: introduce proc_create_single{,_data}
2018-05-16 07:23:35 +02:00
consoles.c
proc: introduce proc_create_seq{,_data}
2018-05-16 07:23:35 +02:00
cpuinfo.c
x86 / CPU: Always show current CPU frequency in /proc/cpuinfo
2017-11-15 19:46:50 +01:00
devices.c
proc: introduce proc_create_seq{,_data}
2018-05-16 07:23:35 +02:00
fd.c
proc: use "unsigned int" in proc_fill_cache()
2018-06-07 17:34:38 -07:00
fd.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
generic.c
proc: fix /proc/net/* after setns(2)
2019-03-13 14:02:32 -07:00
inode.c
proc: fixup PDE allocation bloat
2018-08-22 10:52:45 -07:00
internal.h
proc: fix /proc/net/* after setns(2)
2019-03-13 14:02:32 -07:00
interrupts.c
proc: introduce proc_create_seq{,_data}
2018-05-16 07:23:35 +02:00
Kconfig
proc/kcore: add vmcoreinfo note to /proc/kcore
2018-08-22 10:52:46 -07:00
kcore.c
x86/gart: Exclude GART aperture from kcore
2019-04-20 09:15:59 +02:00
kmsg.c
vfs: do bulk POLL* -> EPOLL* replacement
2018-02-11 14:34:03 -08:00
loadavg.c
proc: introduce proc_create_single{,_data}
2018-05-16 07:23:35 +02:00
Makefile
proc: : uninline name_to_int()
2017-11-17 16:10:00 -08:00
meminfo.c
/proc/meminfo: add percpu populated pages count
2018-08-22 10:52:45 -07:00
namespaces.c
procfs: switch instantiate_t to d_splice_alias()
2018-05-26 14:20:50 -04:00
nommu.c
proc: introduce proc_create_seq{,_data}
2018-05-16 07:23:35 +02:00
page.c
mm: mark pages in use for page tables
2018-06-07 17:34:37 -07:00
proc_net.c
proc: fix /proc/net/* after setns(2)
2019-03-13 14:02:32 -07:00
proc_sysctl.c
fs/proc/proc_sysctl.c: fix the default values of i_uid/i_gid on /proc/sys inodes.
2019-07-26 09:14:24 +02:00
proc_tty.c
tty: replace ->proc_fops with ->proc_show
2018-05-16 07:24:30 +02:00
root.c
proc: Make inline name size calculation automatic
2018-06-15 00:48:57 -04:00
self.c
proc: introduce a proc_pid_ns helper
2018-05-16 07:23:35 +02:00
softirqs.c
proc: introduce proc_create_single{,_data}
2018-05-16 07:23:35 +02:00
stat.c
proc: use "unsigned int" in /proc/stat hook
2018-08-22 10:52:46 -07:00
task_mmu.c
proc: use down_read_killable mmap_sem for /proc/pid/maps
2019-07-31 07:27:09 +02:00
task_nommu.c
proc: use down_read_killable mmap_sem for /proc/pid/maps
2019-07-31 07:27:09 +02:00
thread_self.c
proc: introduce a proc_pid_ns helper
2018-05-16 07:23:35 +02:00
uptime.c
fs/proc/uptime.c: use ktime_get_boottime_ts64
2018-08-22 10:52:45 -07:00
util.c
proc: use do-while in name_to_int()
2017-11-17 16:10:00 -08:00
version.c
proc: introduce proc_create_single{,_data}
2018-05-16 07:23:35 +02:00
vmcore.c
fs/proc/vmcore.c: hide vmcoredd_mmap_dumps() for nommu builds
2018-08-23 18:48:43 -07:00