我在一些地方看到了对“IND”,“DIND”和“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 是块的总数。
  • 关于linux - Ext2/3 : Block Type Clarification: IND vs DIND vs TIND,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52286797/

    10-12 21:15