BKL: Remove BKL from ext3 fill_super()
Jan Blunck [Wed, 24 Feb 2010 12:25:29 +0000 (13:25 +0100)]
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>

fs/ext3/super.c

index 41f9dcd..edde63f 100644 (file)
@@ -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;
 }