One thing that deserves mentioning (related to your question) is the fact
that unused fields in the superblock, inode, and group descriptor table
are always initialized to zero. I believe that this has been true for
most (if not all) of ext2's lifetime.
This means that the s_rev_level field could be assumed to be rev 0 when
it was first assigned (some time between kernel 1.1.48 and 1.1.57,
according to your kernel source browser), and remained such for a
considerable time. The compat fields were added around 1.3.99 - 2.0pre6.
AFAIK, the only difference between a GOOD_OLD_REV filesystem and a
DYNAMIC_REV filesystem is:
- addition of COMPAT flags to superblock
- addition of s_inode_size to superblock (previously fixed at 128 bytes)
- addition of s_first inode to superblock (previously fixed at inode 11)
The s_inode_size and s_first inode fields are still set at the default
values to this day. Since we still have a bit of room in the inode,
and a couple of reserved inodes left, there is still no reason to change
The superblock later grew to include the (not very critical) fields:
- addition of s_block_group_number to indicate superblock backup number
- addition of s_uuid, s_volume_name, and s_last_mounted to identify the fs
The rest of the fields are only valid in combination with a COMPAT flag.
The reason why CURRENT_REV is GOOD_OLD_REV and not DYNAMIC_REV is "none".
It isn't really used anywhere. In e2fsck, E2FSCK_CURRENT_REV is 1, and
in libext2fs EXT2_LIB_CURRENT_REV is also 1. Unless we run out of compat
flags or something, I don't see any reason why we would ever want to go
to rev 2.
-- Andreas Dilger \ "If a man ate a pound of pasta and a pound of antipasto, \ would they cancel out, leaving him still hungry?" http://www-mddsp.enel.ucalgary.ca/People/adilger/ -- Dogbert - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to firstname.lastname@example.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/