aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/fat/fat.h3
-rw-r--r--fs/fat/inode.c4
-rw-r--r--fs/fat/namei_msdos.c4
-rw-r--r--fs/fat/namei_vfat.c4
4 files changed, 6 insertions, 9 deletions
diff --git a/fs/fat/fat.h b/fs/fat/fat.h
index f50408901f7e..dc163b8d7699 100644
--- a/fs/fat/fat.h
+++ b/fs/fat/fat.h
@@ -319,8 +319,7 @@ extern struct inode *fat_build_inode(struct super_block *sb,
319 struct msdos_dir_entry *de, loff_t i_pos); 319 struct msdos_dir_entry *de, loff_t i_pos);
320extern int fat_sync_inode(struct inode *inode); 320extern int fat_sync_inode(struct inode *inode);
321extern int fat_fill_super(struct super_block *sb, void *data, int silent, 321extern int fat_fill_super(struct super_block *sb, void *data, int silent,
322 const struct inode_operations *fs_dir_inode_ops, 322 int isvfat, void (*setup)(struct super_block *));
323 int isvfat, void (*setup)(struct super_block *));
324 323
325extern int fat_flush_inodes(struct super_block *sb, struct inode *i1, 324extern int fat_flush_inodes(struct super_block *sb, struct inode *i1,
326 struct inode *i2); 325 struct inode *i2);
diff --git a/fs/fat/inode.c b/fs/fat/inode.c
index 8d68690bdcf1..c27704dc485e 100644
--- a/fs/fat/inode.c
+++ b/fs/fat/inode.c
@@ -1238,8 +1238,7 @@ static int fat_read_root(struct inode *inode)
1238/* 1238/*
1239 * Read the super block of an MS-DOS FS. 1239 * Read the super block of an MS-DOS FS.
1240 */ 1240 */
1241int fat_fill_super(struct super_block *sb, void *data, int silent, 1241int fat_fill_super(struct super_block *sb, void *data, int silent, int isvfat,
1242 const struct inode_operations *fs_dir_inode_ops, int isvfat,
1243 void (*setup)(struct super_block *)) 1242 void (*setup)(struct super_block *))
1244{ 1243{
1245 struct inode *root_inode = NULL, *fat_inode = NULL; 1244 struct inode *root_inode = NULL, *fat_inode = NULL;
@@ -1268,7 +1267,6 @@ int fat_fill_super(struct super_block *sb, void *data, int silent,
1268 sb->s_magic = MSDOS_SUPER_MAGIC; 1267 sb->s_magic = MSDOS_SUPER_MAGIC;
1269 sb->s_op = &fat_sops; 1268 sb->s_op = &fat_sops;
1270 sb->s_export_op = &fat_export_ops; 1269 sb->s_export_op = &fat_export_ops;
1271 sbi->dir_ops = fs_dir_inode_ops;
1272 ratelimit_state_init(&sbi->ratelimit, DEFAULT_RATELIMIT_INTERVAL, 1270 ratelimit_state_init(&sbi->ratelimit, DEFAULT_RATELIMIT_INTERVAL,
1273 DEFAULT_RATELIMIT_BURST); 1271 DEFAULT_RATELIMIT_BURST);
1274 1272
diff --git a/fs/fat/namei_msdos.c b/fs/fat/namei_msdos.c
index 711499040eb6..3b222dafd15b 100644
--- a/fs/fat/namei_msdos.c
+++ b/fs/fat/namei_msdos.c
@@ -659,14 +659,14 @@ static const struct inode_operations msdos_dir_inode_operations = {
659 659
660static void setup(struct super_block *sb) 660static void setup(struct super_block *sb)
661{ 661{
662 MSDOS_SB(sb)->dir_ops = &msdos_dir_inode_operations;
662 sb->s_d_op = &msdos_dentry_operations; 663 sb->s_d_op = &msdos_dentry_operations;
663 sb->s_flags |= MS_NOATIME; 664 sb->s_flags |= MS_NOATIME;
664} 665}
665 666
666static int msdos_fill_super(struct super_block *sb, void *data, int silent) 667static int msdos_fill_super(struct super_block *sb, void *data, int silent)
667{ 668{
668 return fat_fill_super(sb, data, silent, &msdos_dir_inode_operations, 669 return fat_fill_super(sb, data, silent, 0, setup);
669 0, setup);
670} 670}
671 671
672static struct dentry *msdos_mount(struct file_system_type *fs_type, 672static struct dentry *msdos_mount(struct file_system_type *fs_type,
diff --git a/fs/fat/namei_vfat.c b/fs/fat/namei_vfat.c
index adae3fb7451a..20b4ea53fdc4 100644
--- a/fs/fat/namei_vfat.c
+++ b/fs/fat/namei_vfat.c
@@ -1065,6 +1065,7 @@ static const struct inode_operations vfat_dir_inode_operations = {
1065 1065
1066static void setup(struct super_block *sb) 1066static void setup(struct super_block *sb)
1067{ 1067{
1068 MSDOS_SB(sb)->dir_ops = &vfat_dir_inode_operations;
1068 if (MSDOS_SB(sb)->options.name_check != 's') 1069 if (MSDOS_SB(sb)->options.name_check != 's')
1069 sb->s_d_op = &vfat_ci_dentry_ops; 1070 sb->s_d_op = &vfat_ci_dentry_ops;
1070 else 1071 else
@@ -1073,8 +1074,7 @@ static void setup(struct super_block *sb)
1073 1074
1074static int vfat_fill_super(struct super_block *sb, void *data, int silent) 1075static int vfat_fill_super(struct super_block *sb, void *data, int silent)
1075{ 1076{
1076 return fat_fill_super(sb, data, silent, &vfat_dir_inode_operations, 1077 return fat_fill_super(sb, data, silent, 1, setup);
1077 1, setup);
1078} 1078}
1079 1079
1080static struct dentry *vfat_mount(struct file_system_type *fs_type, 1080static struct dentry *vfat_mount(struct file_system_type *fs_type,