Commit 3768744cfea7b995dce27f02341161fbfdfee80c
1 parent
3e44f9f1dc
Exists in
master
and in
39 other branches
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
fs/fat/inode.c
... | ... | @@ -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 |
fs/fat/namei_vfat.c
... | ... | @@ -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 |