| Date | Mon, 8 Apr 2013 08:48:47 -0700 | From | Tejun Heo <> | Subject | Re: [PATCH 2/8] cgroup: implement cgroup_from_id() |
| |
Oops, one more thing.
On Mon, Apr 08, 2013 at 04:20:59PM +0800, Li Zefan wrote: > - cgrp->id = ida_simple_get(&root->cgroup_ida, 1, 0, GFP_KERNEL); > + cgrp->id = idr_alloc(&root->cgroup_idr, cgrp, 1, 0, GFP_KERNEL);
This will allow lookups to return half-initialized cgroup, which shouldn't happen. Either idr_alloc() should be moved to after initialization of other fields are finished, or it should be called with NULL @ptr with idr_replace() added at the end to install @cgrp.
Similarly, the removal path should guarantee that the object is removed from idr *before* its grace period starts.
Thanks.
-- tejun
|