I've looked in some documentation of ext2 and according to them (see sources) at rev 1.0 it is possible to set the size of the inodes but it doesn't clarify what is the purpose of the extra bytes after the standard 128.sources: http://www.nongnu.org/ext2-doc/ext2.html#DEF-SUPERBLOCKhttp://wiki.osdev.org/Ext2
What is the purpose of ext2 dynamic node size?
linux;ext2
The linked sources refer to the on-disk format.  The format of ext2 is designed to be highly extensible (perhaps the clue is in the name? :).I think I read the ext4 code can still mount ext3 and maybe ext2.  Even if that doesn't work now, it's how they were developed and it supports transitions like easily upgrading filesystems.  The format has flags, inode flags, space for more flags, flags which don't stop you mounting the filesystem if you don't understand them, and flags which stop you mounting with write access if you don't understand them.http://www.nongnu.org/ext2-doc/ext2.html#S-FEATURE-COMPATSo it's natural to allow larger inodes as well, to support the implementation of new features.E.g. xattrs can be stored in-line with larger inodes (maybe only in ext3).  They're also used for nanosecond timestamps or inode versioning in ext4:http://kernelnewbies.org/Ext4#head-c212d1622081e592caa73b9e14511cee45fb989b