Commit b71e635f authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'cgroup-for-6.19-rc5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup

Pull cgroup fix from Tejun Heo:

 - Fix -Wflex-array-member-not-at-end warnings in cgroup_root

* tag 'cgroup-for-6.19-rc5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
  cgroup: Eliminate cgrp_ancestor_storage in cgroup_root
parents 0f61b186 ef565782
Loading
Loading
Loading
Loading
+14 −11
Original line number Diff line number Diff line
@@ -626,7 +626,13 @@ struct cgroup {
#endif

	/* All ancestors including self */
	struct cgroup *ancestors[];
	union {
		DECLARE_FLEX_ARRAY(struct cgroup *, ancestors);
		struct {
			struct cgroup *_root_ancestor;
			DECLARE_FLEX_ARRAY(struct cgroup *, _low_ancestors);
		};
	};
};

/*
@@ -647,16 +653,6 @@ struct cgroup_root {
	struct list_head root_list;
	struct rcu_head rcu;	/* Must be near the top */

	/*
	 * The root cgroup. The containing cgroup_root will be destroyed on its
	 * release. cgrp->ancestors[0] will be used overflowing into the
	 * following field. cgrp_ancestor_storage must immediately follow.
	 */
	struct cgroup cgrp;

	/* must follow cgrp for cgrp->ancestors[0], see above */
	struct cgroup *cgrp_ancestor_storage;

	/* Number of cgroups in the hierarchy, used only for /proc/cgroups */
	atomic_t nr_cgrps;

@@ -668,6 +664,13 @@ struct cgroup_root {

	/* The name for this hierarchy - may be empty */
	char name[MAX_CGROUP_ROOT_NAMELEN];

	/*
	 * The root cgroup. The containing cgroup_root will be destroyed on its
	 * release. This must be embedded last due to flexible array at the end
	 * of struct cgroup.
	 */
	struct cgroup cgrp;
};

/*
+1 −1
Original line number Diff line number Diff line
@@ -5847,7 +5847,7 @@ static struct cgroup *cgroup_create(struct cgroup *parent, const char *name,
	int ret;

	/* allocate the cgroup and its ID, 0 is reserved for the root */
	cgrp = kzalloc(struct_size(cgrp, ancestors, (level + 1)), GFP_KERNEL);
	cgrp = kzalloc(struct_size(cgrp, _low_ancestors, level), GFP_KERNEL);
	if (!cgrp)
		return ERR_PTR(-ENOMEM);