Messages in this thread | | | Date | Fri, 11 Nov 2011 14:02:01 +0400 | From | Pavel Emelyanov <> | Subject | Re: [PATCH 1/3] pids: Make alloc_pid return error |
| |
On 11/10/2011 10:00 PM, Oleg Nesterov wrote: > On 11/10, Pavel Emelyanov wrote: >> >> @@ -281,7 +281,7 @@ struct pid *alloc_pid(struct pid_namespace *ns) >> { >> struct pid *pid; >> enum pid_type type; >> - int i, nr; >> + int i, nr = -ENOMEM; >> struct pid_namespace *tmp; >> struct upid *upid; > > This doesn't look right at first glance... I mean, if > the first kmem_cache_alloc(ns->pid_cachep) fails, this -ENOMEM > won't be returned as ERR_PTR().
Yikes! Will fix, thanks!
>> @@ -321,7 +321,7 @@ out_free: >> free_pidmap(pid->numbers + i); >> >> kmem_cache_free(ns->pid_cachep, pid); >> - pid = NULL; >> + pid = ERR_PTR(nr); >> goto out; > > Off-topic, but with or withoit this patch this "goto out" looks > strange imho. Why not a simple > > - pid = NULL; > - goto out; > + return ERR_PTR(nr); > > instead? But this is minor and subjective, I won't insist.
Hm... OK, I will brush up the error paths a little bit more :)
> Oleg. > > . >
| |