diff options
author | Jan Blunck <jblunck@infradead.org> | 2010-02-24 07:25:34 -0500 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2010-10-04 15:10:42 -0400 |
commit | 38d018dba3f725b969f196550d92a6ec1c092428 (patch) | |
tree | 3699b1b32aa5b6f42e323690299ba60f1b32b981 /kernel/cgroup.c | |
parent | efdffb54034a6fc96bc7fafa33ca2a5503113eee (diff) |
BKL: Remove BKL from cgroup
The BKL is only used in remount_fs and get_sb that are both protected by
the superblocks s_umount rw_semaphore. Therefore it is safe to remove the
BKL entirely.
Signed-off-by: Jan Blunck <jblunck@infradead.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'kernel/cgroup.c')
-rw-r--r-- | kernel/cgroup.c | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/kernel/cgroup.c b/kernel/cgroup.c index a7ba3bccadc5..304d27759949 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c | |||
@@ -52,7 +52,6 @@ | |||
52 | #include <linux/cgroupstats.h> | 52 | #include <linux/cgroupstats.h> |
53 | #include <linux/hash.h> | 53 | #include <linux/hash.h> |
54 | #include <linux/namei.h> | 54 | #include <linux/namei.h> |
55 | #include <linux/smp_lock.h> | ||
56 | #include <linux/pid_namespace.h> | 55 | #include <linux/pid_namespace.h> |
57 | #include <linux/idr.h> | 56 | #include <linux/idr.h> |
58 | #include <linux/vmalloc.h> /* TODO: replace with more sophisticated array */ | 57 | #include <linux/vmalloc.h> /* TODO: replace with more sophisticated array */ |
@@ -1222,7 +1221,6 @@ static int cgroup_remount(struct super_block *sb, int *flags, char *data) | |||
1222 | struct cgroup *cgrp = &root->top_cgroup; | 1221 | struct cgroup *cgrp = &root->top_cgroup; |
1223 | struct cgroup_sb_opts opts; | 1222 | struct cgroup_sb_opts opts; |
1224 | 1223 | ||
1225 | lock_kernel(); | ||
1226 | mutex_lock(&cgrp->dentry->d_inode->i_mutex); | 1224 | mutex_lock(&cgrp->dentry->d_inode->i_mutex); |
1227 | mutex_lock(&cgroup_mutex); | 1225 | mutex_lock(&cgroup_mutex); |
1228 | 1226 | ||
@@ -1255,7 +1253,6 @@ static int cgroup_remount(struct super_block *sb, int *flags, char *data) | |||
1255 | kfree(opts.name); | 1253 | kfree(opts.name); |
1256 | mutex_unlock(&cgroup_mutex); | 1254 | mutex_unlock(&cgroup_mutex); |
1257 | mutex_unlock(&cgrp->dentry->d_inode->i_mutex); | 1255 | mutex_unlock(&cgrp->dentry->d_inode->i_mutex); |
1258 | unlock_kernel(); | ||
1259 | return ret; | 1256 | return ret; |
1260 | } | 1257 | } |
1261 | 1258 | ||
@@ -1430,8 +1427,6 @@ static int cgroup_get_sb(struct file_system_type *fs_type, | |||
1430 | struct super_block *sb; | 1427 | struct super_block *sb; |
1431 | struct cgroupfs_root *new_root; | 1428 | struct cgroupfs_root *new_root; |
1432 | 1429 | ||
1433 | lock_kernel(); | ||
1434 | |||
1435 | /* First find the desired set of subsystems */ | 1430 | /* First find the desired set of subsystems */ |
1436 | mutex_lock(&cgroup_mutex); | 1431 | mutex_lock(&cgroup_mutex); |
1437 | ret = parse_cgroupfs_options(data, &opts); | 1432 | ret = parse_cgroupfs_options(data, &opts); |
@@ -1561,7 +1556,6 @@ static int cgroup_get_sb(struct file_system_type *fs_type, | |||
1561 | simple_set_mnt(mnt, sb); | 1556 | simple_set_mnt(mnt, sb); |
1562 | kfree(opts.release_agent); | 1557 | kfree(opts.release_agent); |
1563 | kfree(opts.name); | 1558 | kfree(opts.name); |
1564 | unlock_kernel(); | ||
1565 | return 0; | 1559 | return 0; |
1566 | 1560 | ||
1567 | drop_new_super: | 1561 | drop_new_super: |
@@ -1571,8 +1565,6 @@ static int cgroup_get_sb(struct file_system_type *fs_type, | |||
1571 | out_err: | 1565 | out_err: |
1572 | kfree(opts.release_agent); | 1566 | kfree(opts.release_agent); |
1573 | kfree(opts.name); | 1567 | kfree(opts.name); |
1574 | unlock_kernel(); | ||
1575 | |||
1576 | return ret; | 1568 | return ret; |
1577 | } | 1569 | } |
1578 | 1570 | ||