Книга: Разработка ядра Linux
Состояние элементов каталога
Состояние элементов каталога
Действительный объект элемента каталога, может быть в одном из трех состояний: используемый (used), неиспользуемый (unused) и негативный (negative).
Используемый объект соответствует существующему файловому индексу (т.е. поле d_inode
указывает на связанный объект типа mode) и используется один или более раз (т.е. значение поля d_count
— положительное число). Используемый элемент каталога используется подсистемой VFS, а также указывает на существующие данные, поэтому не может быть удален.
Неиспользуемый объект типа dentry соответствует существующему объекту inode (поле d_inode
указывает на объект файлового индекса), но подсистема VFS в данный момент не использует этот элемент каталога (поле d_count
содержит нулевое значение). Так как элемент каталога указывает на существующий объект, то он сохраняется на случай, если вдруг окажется нужным. Если объект не ликвидировать преждевременно, то его и не нужно будет создавать заново, если вдруг он понадобится в будущем, и поиск по имени пути пройдет быстрее. Когда же появляется необходимость освободить память, то такой объект элемента каталога может быть удален, потому что он никем не используется.
Негативный объект dentry[72] не связан с существующим файловым индексом (поле d_inode
равно значению NULL
), потому что или файловый индекс был удален, или соответствующий элемент пути никогда не существовал. Такие объекты элементов каталогов сохраняются, чтобы в будущем поиск по имени пути проходил быстрее. Хотя такие объекты dentry и полезны, но они при необходимости могут уничтожаться, поскольку никто их на самом деле не использует.
Объект dentry может быть освобожден, оставаясь в слябовом кэше объектов, как обсуждалось в предыдущей главе. В таком случае на этот объект нет ссылок ни в коде VFS, ни в коде файловых систем.
- Возврат элементов каталога
- Создание свободно позиционируемых элементов
- Добавление, изменение и удаление элементов списка
- Восстановление элементов списка из Корзины
- Можно ли указать использование по умолчанию вместо C:Program Files другого каталога для установки программ?
- У файла и каталога есть атрибуты (например: Скрытый, Только чтение). Как ими управлять из командной строки?
- 7.6. Обход элементов массива
- 19.2.4. Чтение и запись значений элементов HTML-форм
- Подходящие типы элементов
- Использование элементов управления ActiveX
- Удаление ключа из вашего каталога ключей.
- Элемент : создание новых элементов на этапе выполнения