sched: Clean up parameter passing of proc_sched_autogroup_set_nice()
Hiroshi Shimamoto [Thu, 23 Feb 2012 08:41:27 +0000 (17:41 +0900)]
Pass nice as a value to proc_sched_autogroup_set_nice().

No side effect is expected, and the variable err will be overwritten with
the return value.

Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/4F45FBB7.5090607@ct.jp.nec.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>

fs/proc/base.c
include/linux/sched.h
kernel/sched/auto_group.c

index d4548dd..965d4bd 100644 (file)
@@ -1310,8 +1310,7 @@ sched_autogroup_write(struct file *file, const char __user *buf,
        if (!p)
                return -ESRCH;
 
-       err = nice;
-       err = proc_sched_autogroup_set_nice(p, &err);
+       err = proc_sched_autogroup_set_nice(p, nice);
        if (err)
                count = err;
 
index c628a91..c298fb9 100644 (file)
@@ -2065,7 +2065,7 @@ extern void sched_autogroup_fork(struct signal_struct *sig);
 extern void sched_autogroup_exit(struct signal_struct *sig);
 #ifdef CONFIG_PROC_FS
 extern void proc_sched_autogroup_show_task(struct task_struct *p, struct seq_file *m);
-extern int proc_sched_autogroup_set_nice(struct task_struct *p, int *nice);
+extern int proc_sched_autogroup_set_nice(struct task_struct *p, int nice);
 #endif
 #else
 static inline void sched_autogroup_create_attach(struct task_struct *p) { }
index e8a1f83..0984a21 100644 (file)
@@ -195,20 +195,20 @@ __setup("noautogroup", setup_autogroup);
 
 #ifdef CONFIG_PROC_FS
 
-int proc_sched_autogroup_set_nice(struct task_struct *p, int *nice)
+int proc_sched_autogroup_set_nice(struct task_struct *p, int nice)
 {
        static unsigned long next = INITIAL_JIFFIES;
        struct autogroup *ag;
        int err;
 
-       if (*nice < -20 || *nice > 19)
+       if (nice < -20 || nice > 19)
                return -EINVAL;
 
-       err = security_task_setnice(current, *nice);
+       err = security_task_setnice(current, nice);
        if (err)
                return err;
 
-       if (*nice < 0 && !can_nice(current, *nice))
+       if (nice < 0 && !can_nice(current, nice))
                return -EPERM;
 
        /* this is a heavy operation taking global locks.. */
@@ -219,9 +219,9 @@ int proc_sched_autogroup_set_nice(struct task_struct *p, int *nice)
        ag = autogroup_task_get(p);
 
        down_write(&ag->lock);
-       err = sched_group_set_shares(ag->tg, prio_to_weight[*nice + 20]);
+       err = sched_group_set_shares(ag->tg, prio_to_weight[nice + 20]);
        if (!err)
-               ag->nice = *nice;
+               ag->nice = nice;
        up_write(&ag->lock);
 
        autogroup_kref_put(ag);