Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Список Lcount Неочищенные Указатели
Верный, используется i_count = 0 Очищены inode__unused (глобальный) Верный, не используется i_count> 0 Очищены inode_in_use (глобальный) Неочищенные inode i_count > 0 Не очищены Поле s__dirty суперблока Строка 371 Это поле указывает на список структур dentry, соответствующих файлу. Структура dentry содержит имя файла, представленного в inode. Файл может иметь несколько структур dentry, если имеет несколько псевдонимов. Строка 372 Это поле хранит уникальный номер inode. Когда inode выделяется в конкретном суперблоке, это число автоматически увеличивается по сравнению с назначенным перед этим ID inode. При вызове операции суперблока read_JLnode () inode, указанный в этом поле, будет прочитан с диска. 1 hlist_node имеет тип указателя на двусвязный список, подобный list_head. Разница заключается в том, что голова списка (тип hlist_head) содержит единственный указатель, указывающий на первый элемент вместо двух (где второй указатель является концом хвоста). При этом уменьшаются расходы на работу с хеш-таблицей. Виртуальная файловая система Linux Строка 373 Поле i_count является счетчиком, увеличиваемым при каждом использовании inode. Значение 0 означает, что inode не используется, а положительное значение - что используется. Строка 392 Это поле хранит указатель на суперблок файловой системы, в котором находится файл. Рис. 6.5 демонстрирует, что поля i_sb для всех inode из списка неочищенных inode суперблока указывают на текущий суперблок. Строка 407 Это поле соответствует флагу состояния inode. В табл. 6.4 перечислены все возможные значения. Таблица 6.4. Состояния inode Флаг inode Описание
I_DIRTY_SYNC I_DIRTY_DATASYNC I_DIRTY_PAGES I DIRTY I LOCK I_FREEING I_CLEAR I NEW См. описание I_DIRTY См. описание I__DIRTY См. описание I_DIRTY Этот макрос совместим с любым из флагов I_DIRTY_*. Он включает в себя проверку каждого из этих флагов. Флаг I_DIRTY_* означает, что содержимое inode было перезаписано и его нужно синхронизировать Устанавливается, когда inode блокируется, и снимается, когда inode разблокируется; inode блокируется во время создания и во время участия в операции ввода-вывода Устанавливается при удалении inode. Этот флаг служит для обозначения удаляемых inode, чтобы никто не смог к ним обратиться Означает, что inode больше не используется Устанавливается при создании inode. Флаг убирается после того, как inode разблокируется inode с установленными флагами I_LOCK и I_DIRTY находится в списке inode__in_use. При отсутствии этих флагов он добавляется в список inode_unused. Структура dentry Структура dentry представляет собой директорию, которую VFS использует для слежения за связями на основе имени директории, организации и логического размещения фай- Глава 6 • Файловые системы лов. Каждый объект dentry объединен с путем и связан с другими описывающими его структурами. Например, в пути /home/lkp/Chapter0б. txt существуют dentry, созданные для /, home, lkp и chapter0б. txt. Каждый dentry связан со своими inode, суперблоком и дополнительной информацией. Рис. 6.6 иллюстрирует связь между структурами superblock, inode и dentry.
Список неиспользуемых объектов dentry, сортируемых во время вставки
1.
Рис. 6.6. Связь между superblock, inode и dentry Рассмотрим некоторые поля структуры dentry. include/linux/dcache.h 81 struct dentry { 85 struct inode * d_inode; 86 struct list_head d_lru; 87 struct list_head d_child; /* 88 struct list_head d_subdirs; /* 89 struct list_head d__alias; 90 unsigned long d_time; /* 91 struct dentry_operations *d_op; 92 struct super_block * d_sb; ребенок списка родителя */ наш ребенок */ используется d_revalidate */ 100 struct dentry * d_parent; 6.2 Виртуальная файловая система Linux 105 } ____ cacheline_aligned; Строка 85 Поле d_inode указывает на inode, соответствующий файлу, связанному с dentry. В случае, если компонент пути, связанный с dentry, не имеет связанного inode, устанавливается в NULL. Строки 85-88 Это указатели на ближайшие элементы списка dentry. Объект dentry может находиться в одном из списков, перечисленных в табл. 6.5. Таблица 6.5. Список dentry Популярное:
|
Последнее изменение этой страницы: 2016-03-25; Просмотров: 873; Нарушение авторского права страницы