Ext4 Design
From Ext4
Contents |
Motivation for ext4
Ext3: default filesystem for many users, Reputation of dependability & compatibility
Scaling up to support large filesystems
Storage advancements
====Increasing data storage requirements
− Features requiring on-disk format change
●
nanosec timestamps, fast EA, preallocation − Reliability wrt on-disk corruption
●
/*
* This is the extent on-disk structure. * It's used at the bottom of the tree. */
struct ext4_extent {
__le32 ee_block; /* first logical block extent covers */ __le16 ee_len; /* number of blocks covered by extent */ __le16 ee_start_hi; /* high 16 bits of physical block */ __le32 ee_start_lo; /* low 32 bits of physical block */
};
/*
* This is index on-disk structure. * It's used at all the levels except the bottom. */
struct ext4_extent_idx {
__le32 ei_block; /* index covers logical blocks from 'block' */ __le32 ei_leaf_lo; /* pointer to the physical block of the next * * level. leaf or next index could be there */ __le16 ei_leaf_hi; /* high 16 bits of physical block */ __u16 ei_unused;
};