On Thu, 30 May 2013 15:58:03 +0800 liguang <lig.f...@cn.fujitsu.com> wrote:

> Signed-off-by: liguang <lig.f...@cn.fujitsu.com>
> ---
>  kernel/sys.c |   12 +++++-------
>  1 files changed, 5 insertions(+), 7 deletions(-)
> 
> diff --git a/kernel/sys.c b/kernel/sys.c
> index b95d3c7..07c6177 100644
> --- a/kernel/sys.c
> +++ b/kernel/sys.c
> @@ -151,9 +151,9 @@ static bool set_one_prio_perm(struct task_struct *p)
>   * set the priority of a task
>   * - the caller must hold the RCU read lock
>   */
> -static int set_one_prio(struct task_struct *p, int niceval, int error)
> +static int set_one_prio(struct task_struct *p, int niceval)
>  {
> -     int no_nice;
> +     int no_nice, error = 0;
>  
>       if (!set_one_prio_perm(p)) {
>               error = -EPERM;
> @@ -168,8 +168,6 @@ static int set_one_prio(struct task_struct *p, int 
> niceval, int error)
>               error = no_nice;
>               goto out;
>       }
> -     if (error == -ESRCH)
> -             error = 0;
>       set_user_nice(p, niceval);
>  out:
>       return error;
> @@ -203,7 +201,7 @@ SYSCALL_DEFINE3(setpriority, int, which, int, who, int, 
> niceval)
>                       else
>                               p = current;
>                       if (p)
> -                             error = set_one_prio(p, niceval, error);
> +                             error = set_one_prio(p, niceval);
>                       break;
>               case PRIO_PGRP:
>                       if (who)
> @@ -211,7 +209,7 @@ SYSCALL_DEFINE3(setpriority, int, which, int, who, int, 
> niceval)
>                       else
>                               pgrp = task_pgrp(current);
>                       do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
> -                             error = set_one_prio(p, niceval, error);
> +                             error = set_one_prio(p, niceval);
>                       } while_each_pid_thread(pgrp, PIDTYPE_PGID, p);
>                       break;
>               case PRIO_USER:
> @@ -225,7 +223,7 @@ SYSCALL_DEFINE3(setpriority, int, which, int, who, int, 
> niceval)
>  
>                       do_each_thread(g, p) {
>                               if (uid_eq(task_uid(p), uid))
> -                                     error = set_one_prio(p, niceval, error);
> +                                     error = set_one_prio(p, niceval);
>                       } while_each_thread(g, p);
>                       if (!uid_eq(uid, cred->uid))
>                               free_uid(user);         /* For find_user() */

Yes, that apepars to be an evuivalent change, but only because
security_task_setnice() cannot return -ESRCH.  The existing code is
rather awkward.

A couple of changes:

From: Andrew Morton <a...@linux-foundation.org>
Subject: kernel-sysc-remove-unnecessary-parameter-of-set_one_prio-fix

clean up definitions, remove unneeded assignment

Cc: liguang <lig.f...@cn.fujitsu.com>
Signed-off-by: Andrew Morton <a...@linux-foundation.org>
---

 kernel/sys.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff -puN 
kernel/sys.c~kernel-sysc-remove-unnecessary-parameter-of-set_one_prio-fix 
kernel/sys.c
--- a/kernel/sys.c~kernel-sysc-remove-unnecessary-parameter-of-set_one_prio-fix
+++ a/kernel/sys.c
@@ -153,7 +153,8 @@ static bool set_one_prio_perm(struct tas
  */
 static int set_one_prio(struct task_struct *p, int niceval)
 {
-       int no_nice, error = 0;
+       int no_nice;
+       int error = 0;
 
        if (!set_one_prio_perm(p)) {
                error = -EPERM;
@@ -186,7 +187,6 @@ SYSCALL_DEFINE3(setpriority, int, which,
                goto out;
 
        /* normalize: avoid signed division (rounding problems) */
-       error = -ESRCH;
        if (niceval < -20)
                niceval = -20;
        if (niceval > 19)
_

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to