aboutsummaryrefslogtreecommitdiffstats
path: root/fs/fat/namei_vfat.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/fat/namei_vfat.c')
-rw-r--r--fs/fat/namei_vfat.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/fs/fat/namei_vfat.c b/fs/fat/namei_vfat.c
index 6fcc7e71fbaa..9006ad9c7b11 100644
--- a/fs/fat/namei_vfat.c
+++ b/fs/fat/namei_vfat.c
@@ -21,6 +21,7 @@
21#include <linux/slab.h> 21#include <linux/slab.h>
22#include <linux/buffer_head.h> 22#include <linux/buffer_head.h>
23#include <linux/namei.h> 23#include <linux/namei.h>
24#include <linux/smp_lock.h> /* For lock_kernel() */
24#include "fat.h" 25#include "fat.h"
25 26
26/* 27/*
@@ -1055,15 +1056,19 @@ static int vfat_fill_super(struct super_block *sb, void *data, int silent)
1055{ 1056{
1056 int res; 1057 int res;
1057 1058
1059 lock_kernel();
1058 res = fat_fill_super(sb, data, silent, &vfat_dir_inode_operations, 1); 1060 res = fat_fill_super(sb, data, silent, &vfat_dir_inode_operations, 1);
1059 if (res) 1061 if (res) {
1062 unlock_kernel();
1060 return res; 1063 return res;
1064 }
1061 1065
1062 if (MSDOS_SB(sb)->options.name_check != 's') 1066 if (MSDOS_SB(sb)->options.name_check != 's')
1063 sb->s_root->d_op = &vfat_ci_dentry_ops; 1067 sb->s_root->d_op = &vfat_ci_dentry_ops;
1064 else 1068 else
1065 sb->s_root->d_op = &vfat_dentry_ops; 1069 sb->s_root->d_op = &vfat_dentry_ops;
1066 1070
1071 unlock_kernel();
1067 return 0; 1072 return 0;
1068} 1073}
1069 1074