歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

Inode 結構:串行管理字段

inode結構前三個字段就是用來幫助將inode串起來的字段,分別是     strUCt list_head i_hash;   struct list_head i_list;   struct list_head i_dentry;     這跟我們在super block那裡所看到的s_list是屬於同樣的型別,都是struct list_head。list_head這種結構在Kernel裡實在用的很多,事實上,它也的確很好用。我們將在這篇文章的最後跟您徹底討論list_head結構以及它的用法。現在我們只要知道list_head可以幫我們將一些結構串行在一起就夠了。在VFS裡,有四個串行是用來管理inode的,分別是inode_unused用來將目前還沒使用的inode串在一起,它就是使用i_list這個字段。第二個是inode_in_use用來將目前正在使用的inode串在一起,當一個inode被使用時,它會從inode_unused中被取出來,因此,此時i_list不會被用到,接著它會利用i_list字段放到inode_in_use中。第三個是sb->s_dirty用來將dirty inode串行在一起。這個串行的開頭位於super block的s_dirty字段,一樣也是使用i_list串接。所有正在使用中的inode都可以經由inode_in_use串行找到,但是,因為系統的inode太多,所以,串行可能會很長,如果慢慢找,在速度上並不理想,因此,每個使用中的inode都會計算出其hash value,並且放到hash table,但是hash table有時會有collision的情形出現,因此每一個entry是由一個list串接起來,這個list就是利用i_hash字段來串接的。至於i_dentry是在dcache中使用的,dcache利用這個字段將inode串接起來。   

 




Copyright © Linux教程網 All Rights Reserved