Чтение индекса на диске в память
Я считаю, что есть два типа inode-on-disk и In-core inode ('struct inode' в fs.ч). Индексация на диске основана на реализации файловой системы. Я пытаюсь понять основную концепцию и у меня есть несколько вопросов -
- Может ли кто-нибудь указать мне код (или пройти по шагам), где дисковый индекс считывается/копируется в основной индекс? то есть, когда создается in-core inode, он должен быть из inode на диске. Итак, как же это происходит?
- Почему бы и нет? in-core inode хранить указатель на inode на диске?
- Если существует модификация in-core inode, то как она распространяется на on-disk inode? Любые указатели на код или поток кода были бы полезны.
Спасибо!
1 ответ:
In core inode копируется с дискового inode в алгоритм ialloc после выделения свободного inode для вновь назначенного дискового inode с помощью алгоритма iget.
Ядро устанавливает флаги, указывающие на расхождения между индексом диска и копией в ядре.Когда ядру нужно записать изменения в файл или в индекс, оно записывает копию индекса в ядре на диск после проверки этих флагов.