刘泉皓

没有最强的法术,只有最强的法师。

ext4向后兼容代码

02 Apr 2016 » memory

ext.h

#define EXT4_GOOD_OLD_INODE_SIZE 128
...
#define EXT4_GOOD_OLD_REV    0    /* The good old (original) format */
...
/* s 一般是 super_block */
#define EXT4_INODE_SIZE(s)    (((s)->s_rev_level == EXT4_GOOD_OLD_REV) ? \
EXT4_GOOD_OLD_INODE_SIZE : \
(s)->s_inode_size)

可以看见老的inode是128字节,但并没有用它。

super.c

/*s_inode_size :
sbi 是 ext4_sb_info , sb=superblock
*/

if (le32_to_cpu(es->s_rev_level) == EXT4_GOOD_OLD_REV) {
  sbi->s_inode_size = EXT4_GOOD_OLD_INODE_SIZE;
  sbi->s_first_ino = EXT4_GOOD_OLD_FIRST_INO;
} else {
  sbi->s_inode_size = le16_to_cpu(es->s_inode_size);
  sbi->s_first_ino = le32_to_cpu(es->s_first_ino);
...

知识共享许可协议    鄂ICP备 15002452号-5    鄂公网安备 42088102000048号