aboutsummaryrefslogtreecommitdiffstats
path: root/fs/proc/base.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/proc/base.c')
-rw-r--r--fs/proc/base.c22
1 files changed, 4 insertions, 18 deletions
diff --git a/fs/proc/base.c b/fs/proc/base.c
index a11eb7196ec8..2a0f5ee9b623 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -1083,15 +1083,9 @@ static ssize_t oom_adj_write(struct file *file, const char __user *buf,
1083 goto out; 1083 goto out;
1084 } 1084 }
1085 1085
1086 task_lock(task);
1087 if (!task->mm) {
1088 err = -EINVAL;
1089 goto err_task_lock;
1090 }
1091
1092 if (!lock_task_sighand(task, &flags)) { 1086 if (!lock_task_sighand(task, &flags)) {
1093 err = -ESRCH; 1087 err = -ESRCH;
1094 goto err_task_lock; 1088 goto err_put_task;
1095 } 1089 }
1096 1090
1097 /* 1091 /*
@@ -1121,8 +1115,7 @@ static ssize_t oom_adj_write(struct file *file, const char __user *buf,
1121 trace_oom_score_adj_update(task); 1115 trace_oom_score_adj_update(task);
1122err_sighand: 1116err_sighand:
1123 unlock_task_sighand(task, &flags); 1117 unlock_task_sighand(task, &flags);
1124err_task_lock: 1118err_put_task:
1125 task_unlock(task);
1126 put_task_struct(task); 1119 put_task_struct(task);
1127out: 1120out:
1128 return err < 0 ? err : count; 1121 return err < 0 ? err : count;
@@ -1186,15 +1179,9 @@ static ssize_t oom_score_adj_write(struct file *file, const char __user *buf,
1186 goto out; 1179 goto out;
1187 } 1180 }
1188 1181
1189 task_lock(task);
1190 if (!task->mm) {
1191 err = -EINVAL;
1192 goto err_task_lock;
1193 }
1194
1195 if (!lock_task_sighand(task, &flags)) { 1182 if (!lock_task_sighand(task, &flags)) {
1196 err = -ESRCH; 1183 err = -ESRCH;
1197 goto err_task_lock; 1184 goto err_put_task;
1198 } 1185 }
1199 1186
1200 if ((short)oom_score_adj < task->signal->oom_score_adj_min && 1187 if ((short)oom_score_adj < task->signal->oom_score_adj_min &&
@@ -1210,8 +1197,7 @@ static ssize_t oom_score_adj_write(struct file *file, const char __user *buf,
1210 1197
1211err_sighand: 1198err_sighand:
1212 unlock_task_sighand(task, &flags); 1199 unlock_task_sighand(task, &flags);
1213err_task_lock: 1200err_put_task:
1214 task_unlock(task);
1215 put_task_struct(task); 1201 put_task_struct(task);
1216out: 1202out:
1217 return err < 0 ? err : count; 1203 return err < 0 ? err : count;