Basically, a process has a file descriptor table that contains a pointer to a file that points to open processes, the file pointer is actually a pointer to an element of the open file table (which is supported by the kernel). And in the Open File Table, the inode pointer point to the element in the I-node table (also supported by the kernel) will be indicated. The I-node table contains all the information about the file (file information and a pointer to lock the data of the storage file)
When you open the file, an inode element is added to the I-node table. To make inode faster and cheaper, the system will support the inode cache. When the I-node table needs a new element, it will use iget () to get the inode from the cache, and when the file is closed, it will return the corresponding index code to the cache using iput ().
Thus, iput () means PUT inode to the inode cache, and DROPPING means reducing the reference to the inode index in the I-node table. See this page for more details.
Marvin wang
source share