diff options
Diffstat (limited to 'fs/proc/base.c')
| -rw-r--r-- | fs/proc/base.c | 6 | 
1 files changed, 4 insertions, 2 deletions
| diff --git a/fs/proc/base.c b/fs/proc/base.c index a7310841c831..7621db800a74 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c | |||
| @@ -81,6 +81,7 @@ | |||
| 81 | #include <linux/elf.h> | 81 | #include <linux/elf.h> | 
| 82 | #include <linux/pid_namespace.h> | 82 | #include <linux/pid_namespace.h> | 
| 83 | #include <linux/fs_struct.h> | 83 | #include <linux/fs_struct.h> | 
| 84 | #include <linux/slab.h> | ||
| 84 | #include "internal.h" | 85 | #include "internal.h" | 
| 85 | 86 | ||
| 86 | /* NOTE: | 87 | /* NOTE: | 
| @@ -442,12 +443,13 @@ static const struct file_operations proc_lstats_operations = { | |||
| 442 | unsigned long badness(struct task_struct *p, unsigned long uptime); | 443 | unsigned long badness(struct task_struct *p, unsigned long uptime); | 
| 443 | static int proc_oom_score(struct task_struct *task, char *buffer) | 444 | static int proc_oom_score(struct task_struct *task, char *buffer) | 
| 444 | { | 445 | { | 
| 445 | unsigned long points; | 446 | unsigned long points = 0; | 
| 446 | struct timespec uptime; | 447 | struct timespec uptime; | 
| 447 | 448 | ||
| 448 | do_posix_clock_monotonic_gettime(&uptime); | 449 | do_posix_clock_monotonic_gettime(&uptime); | 
| 449 | read_lock(&tasklist_lock); | 450 | read_lock(&tasklist_lock); | 
| 450 | points = badness(task->group_leader, uptime.tv_sec); | 451 | if (pid_alive(task)) | 
| 452 | points = badness(task, uptime.tv_sec); | ||
| 451 | read_unlock(&tasklist_lock); | 453 | read_unlock(&tasklist_lock); | 
| 452 | return sprintf(buffer, "%lu\n", points); | 454 | return sprintf(buffer, "%lu\n", points); | 
| 453 | } | 455 | } | 
