2011-02-11 102 views
8

我認爲有inode-in-disk和in-core inode(fs.h中的'struct inode')兩種類型。磁盤inode基於文件系統實現。我想了解的基本概念,並有幾個問題 -將磁盤inode讀到內存中

  • 有人點我的代碼(或通過所需的步驟)在磁盤上的inode讀取/複製到內核inode ?即,當創建in-core inode時,它必須來自磁盤inode。那麼,這是如何發生的?
  • 爲什麼in-core inode不存儲指向磁盤inode的指針?
  • 如果對in-core inode進行了修改,那麼它如何傳播到磁盤inode?任何指向代碼或代碼流的指針都會有所幫助。

謝謝!

回答

2

在使用算法iget爲新分配的磁盤inode分配一個空閒inode後,核心inode將從算法ialloc中的磁盤inode複製而來。

內核設置標誌,用於指示磁盤inode和內核拷貝之間的差異。當內核需要記錄對文件或inode的更改時,它會在檢查這些內核後將inode的內核拷貝寫入磁盤標誌。