Re: [PATCH] ext4: kenel configuration of usage of ext3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri 02-03-18 13:27:17, David Gounaris wrote:
> 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@xxxxxxxxxxxx>

Thanks for the patch. Eric has already fixed the warning differently in his
patch [1]. Also I somewhat fail to see how this change would avoid the
warning. You then disabled 'EXT4_USE_FOR_EXT3' in your kernel config? If
yes, that is just working around problems in userspace which apparently
changed recently and probes filesystem types in different order than it
used to.

								Honza

[1] https://www.spinics.net/lists/linux-ext4/msg59878.html

> ---
>  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
> 
-- 
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR



[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux