X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=fs%2Fioprio.c;h=ca77008146c02494018bf84c28b370f0e0a6b39a;hb=9f5974c8734d83d4ab7096ed98136a82f41210d6;hp=663e420636d6b76e147d1b1e3984acc5aefd115a;hpb=d2f6409584e2c62ffad81690562330ff3bf4a458;p=linux-2.6 diff --git a/fs/ioprio.c b/fs/ioprio.c index 663e420636..ca77008146 100644 --- a/fs/ioprio.c +++ b/fs/ioprio.c @@ -22,6 +22,8 @@ #include #include #include +#include +#include static int set_task_ioprio(struct task_struct *task, int ioprio) { @@ -43,7 +45,7 @@ static int set_task_ioprio(struct task_struct *task, int ioprio) return 0; } -asmlinkage int sys_ioprio_set(int which, int who, int ioprio) +asmlinkage long sys_ioprio_set(int which, int who, int ioprio) { int class = IOPRIO_PRIO_CLASS(ioprio); int data = IOPRIO_PRIO_DATA(ioprio); @@ -62,6 +64,8 @@ asmlinkage int sys_ioprio_set(int which, int who, int ioprio) break; case IOPRIO_CLASS_IDLE: + if (!capable(CAP_SYS_ADMIN)) + return -EPERM; break; default: return -EINVAL; @@ -115,7 +119,7 @@ asmlinkage int sys_ioprio_set(int which, int who, int ioprio) return ret; } -asmlinkage int sys_ioprio_get(int which, int who) +asmlinkage long sys_ioprio_get(int which, int who) { struct task_struct *g, *p; struct user_struct *user;