[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20180302122717.16914-1-david.gounaris@infinera.com>
Date: Fri, 2 Mar 2018 13:27:17 +0100
From: David Gounaris <david.gounaris@...inera.com>
To: linux-ext4@...r.kernel.org
Cc: David Gounaris <david.gounaris@...inera.com>
Subject: [PATCH] ext4: kenel configuration of usage of ext3
The solution is equivalent to what is done to disable ext2.
This was done to avoid warning message after trying to mount as ext3.
Signed-off-by: David Gounaris <david.gounaris@...inera.com>
---
fs/ext4/Kconfig | 11 +++++++++++
fs/ext4/super.c | 11 ++++++++++-
2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/fs/ext4/Kconfig b/fs/ext4/Kconfig
index e38039fd96ff..c901c9429949 100644
--- a/fs/ext4/Kconfig
+++ b/fs/ext4/Kconfig
@@ -73,6 +73,17 @@ config EXT4_USE_FOR_EXT2
compiled kernel size by using one file system driver for
ext2, ext3, and ext4 file systems.
+config EXT4_USE_FOR_EXT3
+ bool "Use ext4 for ext3 file systems"
+ depends on EXT4_FS
+ depends on EXT3_FS=n
+ default y
+ help
+ Allow the ext4 file system driver code to be used for ext3
+ file system mounts. This allows users to reduce their
+ compiled kernel size by using one file system driver for
+ ext2, ext3, and ext4 file systems.
+
config EXT4_FS_POSIX_ACL
bool "Ext4 POSIX Access Control Lists"
depends on EXT4_FS
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index f29351c66610..c5a7258565e2 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -129,6 +129,7 @@ MODULE_ALIAS("ext2");
#endif
+#if !defined(CONFIG_EXT3_FS) && !defined(CONFIG_EXT3_FS_MODULE) && defined(CONFIG_EXT4_USE_FOR_EXT3)
static struct file_system_type ext3_fs_type = {
.owner = THIS_MODULE,
.name = "ext3",
@@ -139,6 +140,9 @@ static struct file_system_type ext3_fs_type = {
MODULE_ALIAS_FS("ext3");
MODULE_ALIAS("ext3");
#define IS_EXT3_SB(sb) ((sb)->s_bdev->bd_holder == &ext3_fs_type)
+#else
+#define IS_EXT3_SB(sb) (0)
+#endif
static int ext4_verify_csum_type(struct super_block *sb,
struct ext4_super_block *es)
@@ -5745,6 +5749,7 @@ static inline void unregister_as_ext2(void) { }
static inline int ext2_feature_set_ok(struct super_block *sb) { return 0; }
#endif
+#if !defined(CONFIG_EXT3_FS) && !defined(CONFIG_EXT3_FS_MODULE) && defined(CONFIG_EXT4_USE_FOR_EXT3)
static inline void register_as_ext3(void)
{
int err = register_filesystem(&ext3_fs_type);
@@ -5757,7 +5762,6 @@ static inline void unregister_as_ext3(void)
{
unregister_filesystem(&ext3_fs_type);
}
-
static inline int ext3_feature_set_ok(struct super_block *sb)
{
if (ext4_has_unknown_ext3_incompat_features(sb))
@@ -5771,6 +5775,11 @@ static inline int ext3_feature_set_ok(struct super_block *sb)
return 1;
}
+#else
+static inline void register_as_ext3(void) { }
+static inline void unregister_as_ext3(void) { }
+static inline int ext3_feature_set_ok(struct super_block *sb) { return 0; }
+#endif
static struct file_system_type ext4_fs_type = {
.owner = THIS_MODULE,
.name = "ext4",
--
2.13.6
Powered by blists - more mailing lists