diff options
| -rw-r--r-- | fs/proc/base.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/proc/base.c b/fs/proc/base.c index a7310841c831..b1f6e62773d3 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c | |||
| @@ -442,12 +442,13 @@ static const struct file_operations proc_lstats_operations = { | |||
| 442 | unsigned long badness(struct task_struct *p, unsigned long uptime); | 442 | unsigned long badness(struct task_struct *p, unsigned long uptime); |
| 443 | static int proc_oom_score(struct task_struct *task, char *buffer) | 443 | static int proc_oom_score(struct task_struct *task, char *buffer) |
| 444 | { | 444 | { |
| 445 | unsigned long points; | 445 | unsigned long points = 0; |
| 446 | struct timespec uptime; | 446 | struct timespec uptime; |
| 447 | 447 | ||
| 448 | do_posix_clock_monotonic_gettime(&uptime); | 448 | do_posix_clock_monotonic_gettime(&uptime); |
| 449 | read_lock(&tasklist_lock); | 449 | read_lock(&tasklist_lock); |
| 450 | points = badness(task->group_leader, uptime.tv_sec); | 450 | if (pid_alive(task)) |
| 451 | points = badness(task, uptime.tv_sec); | ||
| 451 | read_unlock(&tasklist_lock); | 452 | read_unlock(&tasklist_lock); |
| 452 | return sprintf(buffer, "%lu\n", points); | 453 | return sprintf(buffer, "%lu\n", points); |
| 453 | } | 454 | } |
