Re: [PATCH cgroup/for-3.12 1/2] cgroup: fix subsystem file accesses on the root cgroup

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Aug 19, 2013 at 10:23:41AM +0800, Li Zefan wrote:
> > 105347ba5 ("cgroup: make cgroup_file_open() rcu_read_lock() around
> > cgroup_css() and add cfent->css") added cfent->css to cache the
> > associted cgroup_subsys_state across file operations.
> > 
> > A cfent is associated with single css throughout its lifetime and the
> > origimal commit initialized the cache pointer during cgroup_add_file()
> > and verified that it matches the actual one in cgroup_file_open().
> > While this works fine for !root cgroups, it's broken for root cgroups
> > as files in a root cgroup are created before the css's are associated
> > with the cgroup and thus cgroup_css() call in cgroup_add_file()
> > returns NULL associating all cfents in the root cgroup with NULL css.
> > This makes cgroup_file_open() trigger WARN and fail with -ENODEV for
> > all !core subsystem files in the root cgroups.
> > 
> > There's no reason to initialize cfent->css separately from
> > cgroup_add_file().  As the association never changes,
> > cgroup_file_open() can set it unconditionally every time and
> > containing the logic in cgroup_file_open() makes more sense anyway as
> > the only reason it's necessary is file->private_data being already
> > occupied.
> > 
> > Fix it by setting cfent->css unconditionally from cgroup_file_open().
> > 
> > Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
> 
> Acked-by: Li Zefan <lizefan@xxxxxxxxxx>

Applied to cgroup/for-3.12.

Thanks.

-- 
tejun
_______________________________________________
Containers mailing list
Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linuxfoundation.org/mailman/listinfo/containers




[Index of Archives]     [Cgroups]     [Netdev]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux