summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Blunck <jblunck@infradead.org>2010-02-24 13:25:29 +0100
committerArnd Bergmann <arnd@arndb.de>2010-10-04 21:10:36 +0200
commitd646cf82e9b6a58ba2d748e66e5fc7223830c68c (patch)
treefd983a3173775d9db7095d886e12ab2f4fe29fe8
parentb0991aa324b57dca8feef75ed75b24080ee4a9fc (diff)
downloadop-kernel-dev-d646cf82e9b6a58ba2d748e66e5fc7223830c68c.zip
op-kernel-dev-d646cf82e9b6a58ba2d748e66e5fc7223830c68c.tar.gz
BKL: Remove BKL from ext3 fill_super()
The BKL is protecting nothing than two memory allocations here. Signed-off-by: Jan Blunck <jblunck@infradead.org> Acked-by: Jan Kara <jack@suse.cz> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-rw-r--r--fs/ext3/super.c13
1 files changed, 1 insertions, 12 deletions
diff --git a/fs/ext3/super.c b/fs/ext3/super.c
index 41f9dcd..edde63f 100644
--- a/fs/ext3/super.c
+++ b/fs/ext3/super.c
@@ -1611,19 +1611,14 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent)
__le32 features;
int err;
- lock_kernel();
-
sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
- if (!sbi) {
- unlock_kernel();
+ if (!sbi)
return -ENOMEM;
- }
sbi->s_blockgroup_lock =
kzalloc(sizeof(struct blockgroup_lock), GFP_KERNEL);
if (!sbi->s_blockgroup_lock) {
kfree(sbi);
- unlock_kernel();
return -ENOMEM;
}
sb->s_fs_info = sbi;
@@ -1632,8 +1627,6 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent)
sbi->s_resgid = EXT3_DEF_RESGID;
sbi->s_sb_block = sb_block;
- unlock_kernel();
-
blocksize = sb_min_blocksize(sb, EXT3_MIN_BLOCK_SIZE);
if (!blocksize) {
ext3_msg(sb, KERN_ERR, "error: unable to set blocksize");
@@ -2030,8 +2023,6 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent)
test_opt(sb,DATA_FLAGS) == EXT3_MOUNT_ORDERED_DATA ? "ordered":
"writeback");
- lock_kernel();
- unlock_kernel();
return 0;
cantfind_ext3:
@@ -2061,8 +2052,6 @@ out_fail:
sb->s_fs_info = NULL;
kfree(sbi->s_blockgroup_lock);
kfree(sbi);
- lock_kernel();
- unlock_kernel();
return ret;
}
OpenPOWER on IntegriCloud