Чтение индекса на диске в память


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

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

Спасибо!

1 8

1 ответ:

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

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