On Tue, 1 Feb 2011 16:23:01 +0200 "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx> wrote: Thanks for your review, I will fix the error handling. Please also see my comments on create vs populate. > On Wed, Dec 01, 2010 at 11:00:12AM -0800, > jacob.jun.pan@xxxxxxxxxxxxxxx wrote: > > From: Jacob Pan <jacob.jun.pan@xxxxxxxxxxxxxxx> > > > +#define FREEZER_KH_PREFIX "freezer_" > > static int freezer_populate(struct cgroup_subsys *ss, struct > > cgroup *cgroup) { > > + int ret = 0; > > + char thread_name[32]; > > + struct freezer *freezer; > > + > > if (!cgroup->parent) > > return 0; > > - return cgroup_add_files(cgroup, ss, files, > > ARRAY_SIZE(files)); + > > + freezer = cgroup_freezer(cgroup); > > + ret = cgroup_add_files(cgroup, ss, files, > > ARRAY_SIZE(files)); + > > + snprintf(thread_name, 32, "%s%s", FREEZER_KH_PREFIX, > > + cgroup->dentry->d_name.name); > > + freezer->fkh = kthread_run(freezer_kh, (void *)cgroup, > > thread_name); > > + if (!IS_ERR(freezer_task)) > > + return 0; > > + return ret; > > Why do you create on freezer_populate, not on freezer_create? I want to use the cgroup directory name for the kernel thread. If I do that in create() instead of populate, I would have to add more changes: 1. pass dentry to the create function since that is called before cgroup_create_dir() 2. skip the dummy root as part of the initialization. So I chose to use populate, are there any issues with the functionality? _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers