Commit 3768744cfea7b995dce27f02341161fbfdfee80c

Authored by Arnd Bergmann
1 parent 3e44f9f1dc

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: Arnd Bergmann <arnd@arndb.de>
Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Cc: Jan Blunck <jblunck@infradead.org>

Showing 3 changed files with 6 additions and 13 deletions Side-by-side Diff

... ... @@ -14,7 +14,6 @@
14 14 #include <linux/init.h>
15 15 #include <linux/time.h>
16 16 #include <linux/slab.h>
17   -#include <linux/smp_lock.h>
18 17 #include <linux/seq_file.h>
19 18 #include <linux/pagemap.h>
20 19 #include <linux/mpage.h>
... ... @@ -489,8 +488,6 @@
489 488 {
490 489 struct msdos_sb_info *sbi = MSDOS_SB(sb);
491 490  
492   - lock_kernel();
493   -
494 491 if (sb->s_dirt)
495 492 fat_write_super(sb);
496 493  
... ... @@ -504,8 +501,6 @@
504 501  
505 502 sb->s_fs_info = NULL;
506 503 kfree(sbi);
507   -
508   - unlock_kernel();
509 504 }
510 505  
511 506 static struct kmem_cache *fat_inode_cachep;
fs/fat/namei_msdos.c
... ... @@ -9,7 +9,6 @@
9 9 #include <linux/module.h>
10 10 #include <linux/time.h>
11 11 #include <linux/buffer_head.h>
12   -#include <linux/smp_lock.h> /* For lock_kernel() */
13 12 #include "fat.h"
14 13  
15 14 /* Characters that are undesirable in an MS-DOS file name */
16 15  
17 16  
... ... @@ -663,16 +662,16 @@
663 662 {
664 663 int res;
665 664  
666   - lock_kernel();
  665 + lock_super(sb);
667 666 res = fat_fill_super(sb, data, silent, &msdos_dir_inode_operations, 0);
668 667 if (res) {
669   - unlock_kernel();
  668 + unlock_super(sb);
670 669 return res;
671 670 }
672 671  
673 672 sb->s_flags |= MS_NOATIME;
674 673 sb->s_root->d_op = &msdos_dentry_operations;
675   - unlock_kernel();
  674 + unlock_super(sb);
676 675 return 0;
677 676 }
678 677  
... ... @@ -21,7 +21,6 @@
21 21 #include <linux/slab.h>
22 22 #include <linux/buffer_head.h>
23 23 #include <linux/namei.h>
24   -#include <linux/smp_lock.h> /* For lock_kernel() */
25 24 #include "fat.h"
26 25  
27 26 /*
28 27  
... ... @@ -1056,10 +1055,10 @@
1056 1055 {
1057 1056 int res;
1058 1057  
1059   - lock_kernel();
  1058 + lock_super(sb);
1060 1059 res = fat_fill_super(sb, data, silent, &vfat_dir_inode_operations, 1);
1061 1060 if (res) {
1062   - unlock_kernel();
  1061 + unlock_super(sb);
1063 1062 return res;
1064 1063 }
1065 1064  
... ... @@ -1068,7 +1067,7 @@
1068 1067 else
1069 1068 sb->s_root->d_op = &vfat_dentry_ops;
1070 1069  
1071   - unlock_kernel();
  1070 + unlock_super(sb);
1072 1071 return 0;
1073 1072 }
1074 1073