Ext2/3:块类型说明:IND vs DIND vs TIND

Ext2/3: Block Type Clarification: IND vs DIND vs TIND

我在一些地方看到了对 "IND" vs "DIND" vs "TIND" 块类型的引用,而代码中的定义非常简洁:

(https://github.com/torvalds/linux/blob/master/fs/ext4/ext4.h#L362)

#define EXT4_NDIR_BLOCKS        12
#define EXT4_IND_BLOCK          EXT4_NDIR_BLOCKS
#define EXT4_DIND_BLOCK         (EXT4_IND_BLOCK + 1)
#define EXT4_TIND_BLOCK         (EXT4_DIND_BLOCK + 1)
#define EXT4_N_BLOCKS           (EXT4_TIND_BLOCK + 1)

有人可以阐明它们是什么,以及为什么这些定义暗示 TIND 块包含 DIND,而 DIND 块包含 IND 块。

我狂热地看过了,但是没有关于这个主题的任何明显的讨论或评论,我需要更多时间才能从代码中弄清楚。

#define EXT4_NDIR_BLOCKS                            /* number of direct blocks */
#define EXT4_IND_BLOCK                              /* single indirect block   */
#define EXT4_DIND_BLOCK                             /*  double indirect block  */
#define EXT4_TIND_BLOCK                             /* trible indirect block   */
#define EXT4_N_BLOCKS                               /* total number of blocks  */
  • NDIR为直接块数
  • IND 是单个间接块。
  • DIND是双重间接块。
  • TIND是三重间接块
  • N是区块总数