|
@@ -27,9 +27,11 @@
|
|
*/
|
|
*/
|
|
|
|
|
|
#include <linux/cgroup.h>
|
|
#include <linux/cgroup.h>
|
|
|
|
+#include <linux/cred.h>
|
|
#include <linux/ctype.h>
|
|
#include <linux/ctype.h>
|
|
#include <linux/errno.h>
|
|
#include <linux/errno.h>
|
|
#include <linux/fs.h>
|
|
#include <linux/fs.h>
|
|
|
|
+#include <linux/init_task.h>
|
|
#include <linux/kernel.h>
|
|
#include <linux/kernel.h>
|
|
#include <linux/list.h>
|
|
#include <linux/list.h>
|
|
#include <linux/mm.h>
|
|
#include <linux/mm.h>
|
|
@@ -1514,6 +1516,7 @@ static struct dentry *cgroup_mount(struct file_system_type *fs_type,
|
|
struct cgroup *root_cgrp = &root->top_cgroup;
|
|
struct cgroup *root_cgrp = &root->top_cgroup;
|
|
struct inode *inode;
|
|
struct inode *inode;
|
|
struct cgroupfs_root *existing_root;
|
|
struct cgroupfs_root *existing_root;
|
|
|
|
+ const struct cred *cred;
|
|
int i;
|
|
int i;
|
|
|
|
|
|
BUG_ON(sb->s_root != NULL);
|
|
BUG_ON(sb->s_root != NULL);
|
|
@@ -1593,7 +1596,9 @@ static struct dentry *cgroup_mount(struct file_system_type *fs_type,
|
|
BUG_ON(!list_empty(&root_cgrp->children));
|
|
BUG_ON(!list_empty(&root_cgrp->children));
|
|
BUG_ON(root->number_of_cgroups != 1);
|
|
BUG_ON(root->number_of_cgroups != 1);
|
|
|
|
|
|
|
|
+ cred = override_creds(&init_cred);
|
|
cgroup_populate_dir(root_cgrp);
|
|
cgroup_populate_dir(root_cgrp);
|
|
|
|
+ revert_creds(cred);
|
|
mutex_unlock(&cgroup_mutex);
|
|
mutex_unlock(&cgroup_mutex);
|
|
mutex_unlock(&inode->i_mutex);
|
|
mutex_unlock(&inode->i_mutex);
|
|
} else {
|
|
} else {
|