mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-15 05:11:32 +00:00
cgroup: remove cgroup_add_file[s]()
No controller is using cgroup_add_files[s](). Unexport them, and convert cgroup_add_files() to handle NULL entry terminated array instead of taking count explicitly and continue creation on failure for internal use. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Li Zefan <lizf@cn.fujitsu.com>
This commit is contained in:
parent
6bc103498f
commit
db0416b649
@ -404,22 +404,6 @@ struct cgroup_scanner {
|
||||
void *data;
|
||||
};
|
||||
|
||||
/*
|
||||
* Add a new file to the given cgroup directory. Should only be
|
||||
* called by subsystems from within a populate() method
|
||||
*/
|
||||
int cgroup_add_file(struct cgroup *cgrp, struct cgroup_subsys *subsys,
|
||||
const struct cftype *cft);
|
||||
|
||||
/*
|
||||
* Add a set of new files to the given cgroup directory. Should
|
||||
* only be called by subsystems from within a populate() method
|
||||
*/
|
||||
int cgroup_add_files(struct cgroup *cgrp,
|
||||
struct cgroup_subsys *subsys,
|
||||
const struct cftype cft[],
|
||||
int count);
|
||||
|
||||
int cgroup_add_cftypes(struct cgroup_subsys *ss, const struct cftype *cfts);
|
||||
|
||||
int cgroup_is_removed(const struct cgroup *cgrp);
|
||||
|
@ -2615,9 +2615,8 @@ static umode_t cgroup_file_mode(const struct cftype *cft)
|
||||
return mode;
|
||||
}
|
||||
|
||||
int cgroup_add_file(struct cgroup *cgrp,
|
||||
struct cgroup_subsys *subsys,
|
||||
const struct cftype *cft)
|
||||
static int cgroup_add_file(struct cgroup *cgrp, struct cgroup_subsys *subsys,
|
||||
const struct cftype *cft)
|
||||
{
|
||||
struct dentry *dir = cgrp->dentry;
|
||||
struct dentry *dentry;
|
||||
@ -2649,22 +2648,23 @@ int cgroup_add_file(struct cgroup *cgrp,
|
||||
error = PTR_ERR(dentry);
|
||||
return error;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(cgroup_add_file);
|
||||
|
||||
int cgroup_add_files(struct cgroup *cgrp,
|
||||
struct cgroup_subsys *subsys,
|
||||
const struct cftype cft[],
|
||||
int count)
|
||||
static int cgroup_add_files(struct cgroup *cgrp, struct cgroup_subsys *subsys,
|
||||
const struct cftype cfts[])
|
||||
{
|
||||
int i, err;
|
||||
for (i = 0; i < count; i++) {
|
||||
err = cgroup_add_file(cgrp, subsys, &cft[i]);
|
||||
if (err)
|
||||
return err;
|
||||
const struct cftype *cft;
|
||||
int err, ret = 0;
|
||||
|
||||
for (cft = cfts; cft->name[0] != '\0'; cft++) {
|
||||
err = cgroup_add_file(cgrp, subsys, cft);
|
||||
if (err) {
|
||||
pr_warning("cgroup_add_files: failed to create %s, err=%d\n",
|
||||
cft->name, err);
|
||||
ret = err;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(cgroup_add_files);
|
||||
|
||||
static DEFINE_MUTEX(cgroup_cft_mutex);
|
||||
|
||||
@ -2688,10 +2688,6 @@ static void cgroup_cfts_commit(struct cgroup_subsys *ss,
|
||||
{
|
||||
LIST_HEAD(pending);
|
||||
struct cgroup *cgrp, *n;
|
||||
int count = 0;
|
||||
|
||||
while (cfts[count].name[0] != '\0')
|
||||
count++;
|
||||
|
||||
/* %NULL @cfts indicates abort and don't bother if @ss isn't attached */
|
||||
if (cfts && ss->root != &rootnode) {
|
||||
@ -2713,7 +2709,7 @@ static void cgroup_cfts_commit(struct cgroup_subsys *ss,
|
||||
mutex_lock(&inode->i_mutex);
|
||||
mutex_lock(&cgroup_mutex);
|
||||
if (!cgroup_is_removed(cgrp))
|
||||
cgroup_add_files(cgrp, ss, cfts, count);
|
||||
cgroup_add_files(cgrp, ss, cfts);
|
||||
mutex_unlock(&cgroup_mutex);
|
||||
mutex_unlock(&inode->i_mutex);
|
||||
|
||||
@ -3739,6 +3735,7 @@ static struct cftype files[] = {
|
||||
.write_string = cgroup_release_agent_write,
|
||||
.max_write_len = PATH_MAX,
|
||||
},
|
||||
{ } /* terminate */
|
||||
};
|
||||
|
||||
static int cgroup_populate_dir(struct cgroup *cgrp)
|
||||
@ -3746,7 +3743,7 @@ static int cgroup_populate_dir(struct cgroup *cgrp)
|
||||
int err;
|
||||
struct cgroup_subsys *ss;
|
||||
|
||||
err = cgroup_add_files(cgrp, NULL, files, ARRAY_SIZE(files));
|
||||
err = cgroup_add_files(cgrp, NULL, files);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
@ -3757,16 +3754,8 @@ static int cgroup_populate_dir(struct cgroup *cgrp)
|
||||
if (ss->populate && (err = ss->populate(ss, cgrp)) < 0)
|
||||
return err;
|
||||
|
||||
list_for_each_entry(set, &ss->cftsets, node) {
|
||||
const struct cftype *cft;
|
||||
|
||||
for (cft = set->cfts; cft->name[0] != '\0'; cft++) {
|
||||
err = cgroup_add_file(cgrp, ss, cft);
|
||||
if (err)
|
||||
pr_warning("cgroup_populate_dir: failed to create %s, err=%d\n",
|
||||
cft->name, err);
|
||||
}
|
||||
}
|
||||
list_for_each_entry(set, &ss->cftsets, node)
|
||||
cgroup_add_files(cgrp, ss, set->cfts);
|
||||
}
|
||||
|
||||
/* This cgroup is ready now */
|
||||
|
Loading…
Reference in New Issue
Block a user