diff --git a/[refs] b/[refs] index bc9306bda1a8..3a14a0b0c314 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a014741c0adfb8fb79952939ca087cf03d272bb9 +refs/heads/master: 1447399b3e34af016c368b4178db7ef0e04e15b0 diff --git a/trunk/fs/ioprio.c b/trunk/fs/ioprio.c index 748cfb92dcc6..8def14e24c37 100644 --- a/trunk/fs/ioprio.c +++ b/trunk/fs/ioprio.c @@ -139,7 +139,12 @@ SYSCALL_DEFINE3(ioprio_set, int, which, int, who, int, ioprio) break; do_each_thread(g, p) { - if (__task_cred(p)->uid != who) + int match; + + rcu_read_lock(); + match = __task_cred(p)->uid == who; + rcu_read_unlock(); + if (!match) continue; ret = set_task_ioprio(p, ioprio); if (ret) @@ -232,7 +237,12 @@ SYSCALL_DEFINE2(ioprio_get, int, which, int, who) break; do_each_thread(g, p) { - if (__task_cred(p)->uid != user->uid) + int match; + + rcu_read_lock(); + match = __task_cred(p)->uid == user->uid; + rcu_read_unlock(); + if (!match) continue; tmpio = get_task_ioprio(p); if (tmpio < 0)