Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit db0416b6 authored by Tejun Heo's avatar Tejun Heo
Browse files

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: default avatarTejun Heo <tj@kernel.org>
Acked-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
parent 6bc10349
Loading
Loading
Loading
Loading
+0 −16
Original line number Diff line number Diff line
@@ -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);
+20 −31
Original line number Diff line number Diff line
@@ -2615,8 +2615,7 @@ static umode_t cgroup_file_mode(const struct cftype *cft)
	return mode;
}

int cgroup_add_file(struct cgroup *cgrp,
		       struct cgroup_subsys *subsys,
static int cgroup_add_file(struct cgroup *cgrp, struct cgroup_subsys *subsys,
			   const struct cftype *cft)
{
	struct dentry *dir = cgrp->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;
	}
EXPORT_SYMBOL_GPL(cgroup_add_files);
	return ret;
}

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 */