Чтение inode на диске в оперативную память - PullRequest
8 голосов
/ 11 февраля 2011

Я полагаю, что есть два типа inode - на диске и in-core inode ('struct inode' в fs.h). Инод на диске основан на реализации файловой системы. Я пытаюсь понять основную концепцию и у меня есть несколько вопросов -

  • Может ли кто-нибудь указать мне код (или пройтись по шагам), где дисковый инод считывается / копируется в основной инод? то есть, когда создается inode in-core, он должен быть из inode диска. Итак, как это происходит?
  • Почему in-core inode не хранит указатель на inode на диске?
  • Если есть модификация inode в ядре, то как он распространяется на inode на диске? Любые указатели на код или поток кода будут полезны.

Спасибо!

1 Ответ

2 голосов
/ 13 февраля 2011

В основном inode копируется с дискового inode в алгоритме ialloc после выделения свободного inode для вновь назначенного дискового inode с использованием алгоритма iget.

Ядро устанавливает флаги, чтобы указать на расхождения между дисковым inode и в ядреКогда ядро ​​должно записывать изменения в файле или в inode, оно записывает внутреннюю копию inode на диск после проверки этих флагов.

...