Messages in this thread | | | Date | Mon, 9 Nov 2009 18:36:54 +0100 | From | Oleg Nesterov <> | Subject | Re: [PATCH 0/3] extend get/setrlimit to support setting rlimits external to a process (v7) |
| |
On 11/09, Jiri Slaby wrote: > > On 11/09/2009 05:40 PM, Oleg Nesterov wrote: > > Also, I don't understand why wthis code get's both pid and task_struct(). > > And what do you suggest?
Well, I didn't see this patch, except the part quoted in your email... (btw, thanks for ccing me).
We can call find_task_by_vpid() under rcu and do get_task_struct(). Or, given that we need tasklist anyway we can do find_task_by_vpid() under tasklist and do not get() at all.
> > And the "if (resource >= RLIM_NLIMITS)" check is racy afaics, see > > http://marc.info/?l=linux-kernel&m=125200862124872 > > Your patch (which I have in my series btw) is likely needed for the > setprlimit syscall, having this on my mind again from now on. But the > 'if' above is a different story. 'resource' is an index here.
Yes, thanks, I misread this check ;)
> And as a bonus, what I found out now is that /proc/*/limits > (proc_info_read->proc_pid_limits) doesn't necessarily reflect current > limits. Since task_lock(current->group_leader) is not held, values of > one limit may be from the old as well as the currently updated one. > > Am I right and do we care at all
I don't know, but personally I think we don't care.
Oleg.
| |