diff options
Diffstat (limited to 'fs/proc/base.c')
-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 9e82adc37b0c..7621db800a74 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c | |||
@@ -443,12 +443,13 @@ static const struct file_operations proc_lstats_operations = { | |||
443 | unsigned long badness(struct task_struct *p, unsigned long uptime); | 443 | unsigned long badness(struct task_struct *p, unsigned long uptime); |
444 | static int proc_oom_score(struct task_struct *task, char *buffer) | 444 | static int proc_oom_score(struct task_struct *task, char *buffer) |
445 | { | 445 | { |
446 | unsigned long points; | 446 | unsigned long points = 0; |
447 | struct timespec uptime; | 447 | struct timespec uptime; |
448 | 448 | ||
449 | do_posix_clock_monotonic_gettime(&uptime); | 449 | do_posix_clock_monotonic_gettime(&uptime); |
450 | read_lock(&tasklist_lock); | 450 | read_lock(&tasklist_lock); |
451 | points = badness(task->group_leader, uptime.tv_sec); | 451 | if (pid_alive(task)) |
452 | points = badness(task, uptime.tv_sec); | ||
452 | read_unlock(&tasklist_lock); | 453 | read_unlock(&tasklist_lock); |
453 | return sprintf(buffer, "%lu\n", points); | 454 | return sprintf(buffer, "%lu\n", points); |
454 | } | 455 | } |