Messages in this thread | | | Subject | RE: [PATCH] getrusage sucks | Date | Thu, 10 Nov 2005 15:47:40 -0800 | From | "Hua Zhong \(hzhong\)" <> |
| |
The reason is what if tsk is no longer available when you call getrusage?
> -----Original Message----- > From: linux-kernel-owner@vger.kernel.org > [mailto:linux-kernel-owner@vger.kernel.org] On Behalf Of > Claudio Scordino > Sent: Thursday, November 10, 2005 2:34 PM > To: linux-kernel@vger.kernel.org; kernelnewbies@nl.linux.org > Subject: [PATCH] getrusage sucks > > Does exist any _real_ reason why getrusage can't be invoked > by a task to know > statistics of another task ? > > The changes would be very trivial, as shown by the following patch. > > Claudio > > > diff --git a/kernel/sys.c b/kernel/sys.c > --- a/kernel/sys.c > +++ b/kernel/sys.c > @@ -1746,9 +1746,13 @@ int getrusage(struct task_struct *p, int > > asmlinkage long sys_getrusage(int who, struct rusage __user *ru) > { > - if (who != RUSAGE_SELF && who != RUSAGE_CHILDREN) > - return -EINVAL; > - return getrusage(current, who, ru); > + if (who != RUSAGE_SELF && who != RUSAGE_CHILDREN) { > + struct task_struct* tsk = find_task_by_pid(who); > + if (tsk == NULL) > + return -EINVAL; > + return getrusage(tsk, RUSAGE_SELF, ru); > + } else > + return getrusage(current, who, ru); > } > > asmlinkage long sys_umask(int mask) > - > To unsubscribe from this list: send the line "unsubscribe > linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |