Welcome to the Linux Foundation Forum!

Clarification about data stored by the inode

Hi, in section Linux Filesystems and the VFS, lesson inodes it is mentioned that:

The inode is used by the operating system to keep track of properties such as name, location, file attributes (permissions, ownership, etc.), access times and other items.

Emphasis of mine; here is states that the inode stores the name, however later on there's a pretty clear warning that the inode does not store the file's name. On the other hand, changing the filename affects the inode's change time.

I assume this all means that the inode does not store the file's name, which is hold by the directory in which it is stored under, but when the name is modified the inode is notified of this change and thus updated as well. Is this correct?

Thank you,

Best Answer

  • luisviveropena
    luisviveropena Posts: 1,245
    Answer ✓

    Hi @cocobongo ,

    1.- You are right, the inode doesn't stores the file name. So I'm going to check on the phrase.
    2.- The file name is stored in the directory, in a specific table, as you can see in the Kernel documentation here (it's for ext4 in this case):

    https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout

    Linear (Classic) Directories
    By default, each directory lists its entries in an "almost-linear" array. I write "almost" because it's not a linear array in the memory sense because directory entries are not split across filesystem blocks. Therefore, it is more accurate to say that a directory is a series of data blocks and that each block contains a linear array of directory entries.

    ==> Look at the table:

    Offset Size Name Description
    0x0 __le32 inode Number of the inode that this directory entry points to.
    0x4 __le16 rec_len Length of this directory entry. Must be a multiple of 4.
    0x6 __le16 name_len Length of the file name.
    0x8 char name[EXT4_NAME_LEN] File name.

    I hope that helps.

    Regards,
    Luis.

Answers

  • cocobongo
    cocobongo Posts: 12

    Thank you, I just wanted to be sure about this part because hard/soft links is something that seems rather simple but still confuses me a bit.

  • luisviveropena
    luisviveropena Posts: 1,245

    It's a pleasure! When it got to that level, it's not so easy to determine :)

    Regards,
    Luis.

Categories

Upcoming Training