Kyle McMartin e2302e0
From: Greg KH <gregkh@suse.de>
Kyle McMartin e2302e0
Date: Thu, 5 Aug 2010 20:53:35 +0000 (-0700)
Kyle McMartin e2302e0
Subject: cgroupfs: create /sys/fs/cgroup to mount cgroupfs on
Kyle McMartin e2302e0
X-Git-Tag: v2.6.36-rc1~521^2~7
Kyle McMartin e2302e0
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=676db4af043014e852f67ba0349dae0071bd11f3
Kyle McMartin e2302e0
Kyle McMartin e2302e0
cgroupfs: create /sys/fs/cgroup to mount cgroupfs on
Kyle McMartin e2302e0
Kyle McMartin e2302e0
We really shouldn't be asking userspace to create new root filesystems.
Kyle McMartin e2302e0
So follow along with all of the other in-kernel filesystems, and provide
Kyle McMartin e2302e0
a mount point in sysfs.
Kyle McMartin e2302e0
Kyle McMartin e2302e0
For cgroupfs, this should be in /sys/fs/cgroup/  This change provides
Kyle McMartin e2302e0
that mount point when the cgroup filesystem is registered in the kernel.
Kyle McMartin e2302e0
Kyle McMartin e2302e0
Acked-by: Paul Menage <menage@google.com>
Kyle McMartin e2302e0
Acked-by: Dhaval Giani <dhaval.giani@gmail.com>
Kyle McMartin e2302e0
Cc: Li Zefan <lizf@cn.fujitsu.com>
Kyle McMartin e2302e0
Cc: Lennart Poettering <lennart@poettering.net>
Kyle McMartin e2302e0
Cc: Kay Sievers <kay.sievers@vrfy.org>
Kyle McMartin e2302e0
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Kyle McMartin e2302e0
---
Kyle McMartin e2302e0
Kyle McMartin e2302e0
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
Kyle McMartin e2302e0
index a8ce099..d83cab0 100644
Kyle McMartin e2302e0
--- a/kernel/cgroup.c
Kyle McMartin e2302e0
+++ b/kernel/cgroup.c
Kyle McMartin e2302e0
@@ -1623,6 +1623,8 @@ static struct file_system_type cgroup_fs_type = {
Kyle McMartin e2302e0
 	.kill_sb = cgroup_kill_sb,
Kyle McMartin e2302e0
 };
Kyle McMartin e2302e0
 
Kyle McMartin e2302e0
+static struct kobject *cgroup_kobj;
Kyle McMartin e2302e0
+
Kyle McMartin e2302e0
 static inline struct cgroup *__d_cgrp(struct dentry *dentry)
Kyle McMartin e2302e0
 {
Kyle McMartin e2302e0
 	return dentry->d_fsdata;
Kyle McMartin e2302e0
@@ -3894,9 +3896,18 @@ int __init cgroup_init(void)
Kyle McMartin e2302e0
 	hhead = css_set_hash(init_css_set.subsys);
Kyle McMartin e2302e0
 	hlist_add_head(&init_css_set.hlist, hhead);
Kyle McMartin e2302e0
 	BUG_ON(!init_root_id(&rootnode));
Kyle McMartin e2302e0
+
Kyle McMartin e2302e0
+	cgroup_kobj = kobject_create_and_add("cgroup", fs_kobj);
Kyle McMartin e2302e0
+	if (!cgroup_kobj) {
Kyle McMartin e2302e0
+		err = -ENOMEM;
Kyle McMartin e2302e0
+		goto out;
Kyle McMartin e2302e0
+	}
Kyle McMartin e2302e0
+
Kyle McMartin e2302e0
 	err = register_filesystem(&cgroup_fs_type);
Kyle McMartin e2302e0
-	if (err < 0)
Kyle McMartin e2302e0
+	if (err < 0) {
Kyle McMartin e2302e0
+		kobject_put(cgroup_kobj);
Kyle McMartin e2302e0
 		goto out;
Kyle McMartin e2302e0
+	}
Kyle McMartin e2302e0
 
Kyle McMartin e2302e0
 	proc_create("cgroups", 0, NULL, &proc_cgroupstats_operations);
Kyle McMartin e2302e0