Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3768744c authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

BKL: Remove BKL from fat



The lock_kernel in fat_put_super is not needed because
it only protects the super block itself and we know that
no other thread can reach it because we are about to
kfree the object.

In the two fill_super functions, this converts the locking
to use lock_super like elsewhere in the fat code. This
is probably not needed either, but is consistent and puts
us on the safe side.

Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Cc: Jan Blunck <jblunck@infradead.org>
parent 3e44f9f1
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -14,7 +14,6 @@
#include <linux/init.h>
#include <linux/time.h>
#include <linux/slab.h>
#include <linux/smp_lock.h>
#include <linux/seq_file.h>
#include <linux/pagemap.h>
#include <linux/mpage.h>
@@ -489,8 +488,6 @@ static void fat_put_super(struct super_block *sb)
{
	struct msdos_sb_info *sbi = MSDOS_SB(sb);

	lock_kernel();

	if (sb->s_dirt)
		fat_write_super(sb);

@@ -504,8 +501,6 @@ static void fat_put_super(struct super_block *sb)

	sb->s_fs_info = NULL;
	kfree(sbi);

	unlock_kernel();
}

static struct kmem_cache *fat_inode_cachep;
+3 −4
Original line number Diff line number Diff line
@@ -9,7 +9,6 @@
#include <linux/module.h>
#include <linux/time.h>
#include <linux/buffer_head.h>
#include <linux/smp_lock.h>     /* For lock_kernel() */
#include "fat.h"

/* Characters that are undesirable in an MS-DOS file name */
@@ -663,16 +662,16 @@ static int msdos_fill_super(struct super_block *sb, void *data, int silent)
{
	int res;

	lock_kernel();
	lock_super(sb);
	res = fat_fill_super(sb, data, silent, &msdos_dir_inode_operations, 0);
	if (res) {
		unlock_kernel();
		unlock_super(sb);
		return res;
	}

	sb->s_flags |= MS_NOATIME;
	sb->s_root->d_op = &msdos_dentry_operations;
	unlock_kernel();
	unlock_super(sb);
	return 0;
}

+3 −4
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@
#include <linux/slab.h>
#include <linux/buffer_head.h>
#include <linux/namei.h>
#include <linux/smp_lock.h>     /* For lock_kernel() */
#include "fat.h"

/*
@@ -1056,10 +1055,10 @@ static int vfat_fill_super(struct super_block *sb, void *data, int silent)
{
	int res;

	lock_kernel();
	lock_super(sb);
	res = fat_fill_super(sb, data, silent, &vfat_dir_inode_operations, 1);
	if (res) {
		unlock_kernel();
		unlock_super(sb);
		return res;
	}

@@ -1068,7 +1067,7 @@ static int vfat_fill_super(struct super_block *sb, void *data, int silent)
	else
		sb->s_root->d_op = &vfat_dentry_ops;

	unlock_kernel();
	unlock_super(sb);
	return 0;
}