Hi Andreas, On Sun, Jan 13, 2019 at 1:36 AM Andreas Dilger <adilger@xxxxxxxxx> wrote: > Don't update the superblock s_rev_level during mount if it isn't > actually necessary, only if superblock features are being set by > the kernel. This was originally added for ext3 since it always > set the INCOMPAT_RECOVER and HAS_JOURNAL features during mount, > but this is not needed since no journal mode was added to ext4. > > That will allow Geert to mount his 20-year-old ext2 rev 0.0 m68k > filesystem, as a testament of the backward compatibility of ext4. > > Fixes: 0390131ba84f ("ext4: Allow ext4 to run without a journal") > Signed-off-by: Andreas Dilger <adilger@xxxxxxxxx> Thanks for your patch! > --- a/fs/ext4/ext4.h > +++ b/fs/ext4/ext4.h > @@ -1670,6 +1670,7 @@ static inline void ext4_clear_state_flags(struct ext4_inode_info *ei) > } \ > static inline void ext4_set_feature_##name(struct super_block *sb) \ > { \ > + ext4_update_dynamic_rev(sb); \ This doesn't compile, as ext4_update_dynamic_rev() is used before its declaration: In file included from fs/ext4/bitmap.c:12:0: fs/ext4/ext4.h: In function ‘ext4_set_feature_dir_prealloc’: fs/ext4/ext4.h:1673:2: error: implicit declaration of function ‘ext4_update_dynamic_rev’ [-Werror=implicit-function-declaration] ext4_update_dynamic_rev(sb); \ ^ fs/ext4/ext4.h:1719:1: note: in expansion of macro ‘EXT4_FEATURE_COMPAT_FUNCS’ EXT4_FEATURE_COMPAT_FUNCS(dir_prealloc, DIR_PREALLOC) ^~~~~~~~~~~~~~~~~~~~~~~~~ fs/ext4/ext4.h: At top level: fs/ext4/ext4.h:2678:13: warning: conflicting types for ‘ext4_update_dynamic_rev’ extern void ext4_update_dynamic_rev(struct super_block *sb); ^~~~~~~~~~~~~~~~~~~~~~~ fs/ext4/ext4.h:1673:2: note: previous implicit declaration of ‘ext4_update_dynamic_rev’ was here ext4_update_dynamic_rev(sb); \ ^ fs/ext4/ext4.h:1719:1: note: in expansion of macro ‘EXT4_FEATURE_COMPAT_FUNCS’ EXT4_FEATURE_COMPAT_FUNCS(dir_prealloc, DIR_PREALLOC) ^~~~~~~~~~~~~~~~~~~~~~~~~ Moving the declaration up fixes that. Hence with that fixed: Tested-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> Thanks! Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds