From: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org
Cc: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Subject: [PATCH 7/9] cgroup: cosmetic follow-up cleanups
Date: Fri, 28 Jun 2013 16:45:43 -0700 [thread overview]
Message-ID: <1372463145-4245-8-git-send-email-tj@kernel.org> (raw)
In-Reply-To: <1372463145-4245-1-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
* Busy subsystem check in rebind_subsystems() is unnecessarily
verbose. Restructure it for brevity.
* The init_cred dancing in cgroup_mount() has a very high WTF factor.
Add a comment explaining what's going on and point to the original
commit.
Signed-off-by: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
---
kernel/cgroup.c | 19 +++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index f0f8bb9..51632b4 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -1009,17 +1009,9 @@ static int rebind_subsystems(struct cgroupfs_root *root,
BUG_ON(!mutex_is_locked(&cgroup_root_mutex));
/* Check that any added subsystems are currently free */
- for_each_subsys(ss, i) {
- unsigned long bit = 1UL << i;
-
- if (!(bit & added_mask))
- continue;
-
- if (ss->root != &cgroup_dummy_root) {
- /* Subsystem isn't free */
+ for_each_subsys(ss, i)
+ if (test_bit(i, &added_mask) && ss->root != &cgroup_dummy_root)
return -EBUSY;
- }
- }
/* Currently we don't handle adding/removing subsystems when
* any child cgroups exist. This is theoretically supportable
@@ -1650,6 +1642,13 @@ static struct dentry *cgroup_mount(struct file_system_type *fs_type,
sb->s_root->d_fsdata = root_cgrp;
root_cgrp->dentry = sb->s_root;
+ /*
+ * We're inside get_sb() and will call lookup_one_len() to
+ * create the root files, which doesn't work if SELinux is
+ * in use. The following cred dancing somehow works around
+ * it. See 2ce9738ba ("cgroupfs: use init_cred when
+ * populating new cgroupfs mount") for more details.
+ */
cred = override_creds(&init_cred);
ret = cgroup_addrm_files(root_cgrp, NULL, cgroup_base_files, true);
--
1.8.3.1
next prev parent reply other threads:[~2013-06-28 23:45 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-28 23:45 [PATCHSET] cgroup: fix and clean up cgroup file creations and removals Tejun Heo
[not found] ` <1372463145-4245-1-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2013-06-28 23:45 ` [PATCH 1/9] cgroup: minor updates around cgroup_clear_directory() Tejun Heo
[not found] ` <1372463145-4245-2-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2013-07-11 6:42 ` Li Zefan
2013-06-28 23:45 ` Tejun Heo
2013-06-28 23:45 ` [PATCH 2/9] cgroup: fix error path of cgroup_addrm_files() Tejun Heo
[not found] ` <1372463145-4245-3-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2013-07-11 6:43 ` Li Zefan
2013-06-28 23:45 ` Tejun Heo
2013-06-28 23:45 ` [PATCH 3/9] cgroup: fix cgroup_add_cftypes() error handling Tejun Heo
[not found] ` <1372463145-4245-4-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2013-07-11 6:43 ` Li Zefan
2013-06-28 23:45 ` Tejun Heo
2013-06-28 23:45 ` [PATCH 4/9] cgroup: separate out cgroup_base_files[] handling out of cgroup_populate/clear_dir() Tejun Heo
[not found] ` <1372463145-4245-5-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2013-07-11 6:44 ` Li Zefan
2013-06-28 23:45 ` Tejun Heo
2013-06-28 23:45 ` [PATCH 5/9] cgroup: update error handling in cgroup_populate_dir() Tejun Heo
2013-06-28 23:45 ` Tejun Heo
[not found] ` <1372463145-4245-6-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2013-07-11 7:08 ` Li Zefan
[not found] ` <51DE59D7.2000203-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2013-07-11 17:01 ` Tejun Heo
[not found] ` <20130711170123.GA10195-9pTldWuhBndy/B6EtB590w@public.gmane.org>
2013-07-12 6:36 ` Li Zefan
2013-07-11 17:18 ` [PATCH v2 " Tejun Heo
[not found] ` <20130711171825.GD10195-9pTldWuhBndy/B6EtB590w@public.gmane.org>
2013-07-12 6:07 ` Li Zefan
2013-07-11 17:18 ` Tejun Heo
2013-06-28 23:45 ` [PATCH 6/9] cgroup: make rebind_subsystems() handle file additions and removals with proper error handling Tejun Heo
[not found] ` <1372463145-4245-7-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2013-06-29 0:10 ` [PATCH v2 " Tejun Heo
2013-07-11 7:09 ` [PATCH " Li Zefan
2013-07-11 17:20 ` [PATCH v3 " Tejun Heo
[not found] ` <20130711172001.GF10195-9pTldWuhBndy/B6EtB590w@public.gmane.org>
2013-07-12 6:13 ` Li Zefan
2013-07-12 19:37 ` [PATCH v4 " Tejun Heo
2013-07-12 19:37 ` Tejun Heo
2013-06-28 23:45 ` [PATCH " Tejun Heo
2013-06-28 23:45 ` [PATCH 7/9] cgroup: cosmetic follow-up cleanups Tejun Heo
2013-06-28 23:45 ` Tejun Heo [this message]
[not found] ` <1372463145-4245-8-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2013-06-29 0:09 ` Tejun Heo
2013-06-29 0:09 ` Tejun Heo
2013-07-11 7:10 ` Li Zefan
2013-06-28 23:45 ` [PATCH 8/9] cgroup: move number_of_cgroups test out of rebind_subsystems() into cgroup_remount() Tejun Heo
[not found] ` <1372463145-4245-9-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2013-07-11 7:10 ` Li Zefan
2013-07-11 7:10 ` Li Zefan
2013-06-28 23:45 ` Tejun Heo
2013-06-28 23:45 ` [PATCH 9/9] blkcg: make blkcg_policy_register() correctly handle cgroup_add_cftypes() failures Tejun Heo
2013-06-28 23:45 ` Tejun Heo
2013-07-11 17:19 ` [PATCH 5.5/9] cgroup: use for_each_subsys() instead of for_each_root_subsys() in cgroup_populate/clear_dir() Tejun Heo
[not found] ` <20130711171927.GE10195-9pTldWuhBndy/B6EtB590w@public.gmane.org>
2013-07-12 6:13 ` Li Zefan
2013-07-11 17:19 ` Tejun Heo
2013-07-12 7:45 ` [PATCHSET] cgroup: fix and clean up cgroup file creations and removals Tejun Heo
2013-07-12 7:45 ` Tejun Heo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1372463145-4245-8-git-send-email-tj@kernel.org \
--to=tj-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
--cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.