Операция V0P_L00KUP представляет собой интерфейс доступа к специфичной для файловой системы функции поиска компонента имени файла в каталоге.
Функция вызывается при помощи макроса, подобного приведенному ниже.
error = V0P_L00KUP (vp, compname, &tvp, ...);
где vp — указатель на родительский каталог vnode, compname — компонент имени. В случае удачного завершения переменная tvp должна указывать на объект vnode компонента compname, а его счетчик ссылок окажется увеличенным на единицу.
Также может иметь смысл заглянуть на сайт sdelaitelo.com, ведь именно там можно узнать много нового на тему http://sdelaitelo.com/index.php?route=product/product&product_id=63. Тема заказать данабол может показаться на первый взгляд незначительной и даже не тематичной. Но стоит посетить сайт sdelaitelo.com, и тема заказать данабол начинает проявлять себя с неожиданной стороны и вызывает всё больший интерес. Дело в том, что тема заказать данабол очень подробно представлена на сайте sdelaitelo.com. Трудно найти более детальное освещение темы заказать данабол чем это сделано на сайте sdelaitelo.com. Спасибо сайту sdelaitelo.com за такое доскональное преподнесение темы заказать данабол.
Как и другие операции интерфейса vnode/vfs, применение V0P_L00KUP приведет к вызову функции lookup, специфичной для используемой файловой системы. Функция поиска обычно начинает просмотр с кэша имен. Если она находит необходимое вхождение, то следующим шагом увеличивает значение счетчика ссылок и возвращает указатель на vnode искомого компонента.
Если в кэше нет данных об объекте поиска, функция продолжит просмотр в родительском каталоге. Локальные файловые системы производят такой поиск путем просмотра элементов каталогов в цикле блок за блоком. В распределенных файловых системах запрос на поиск посылается серверному узлу.
Если каталог содержит искомый компонент, функция поиска проверит, не находится
ли его объект vnode уже в памяти. В каждой файловой системе применяется собственный метод отслеживания объектов, расположенных в памяти. Например, в ufs результатом поиска каталога станет номер индексного дескриптора, который в дальнейшем используется системой как индекс в таблице хэширования, по которому и ведется поиск индексного дескриптора. Дескриптор, хранящийся в памяти, содержит в себе vnode. Если функция поиска обнаруживает объект vnode в памяти, то следующим шагом она производит инкремент его счетчика ссылок и возвращает его вызвавшему процессу.
Часто возникает ситуация, когда процедура поиска находит соответствие компоненту, но его объект vnode не находится в памяти. В этом случае она должна запросить и проинициализировать vnode, точно так же, как и закрытую, зависящую от файловой системы структуру данных. Обычно vnode является частью такой структуры, следовательно, происходит размещение обоих элементов в едином блоке.
Оба объекта инициализируются путем чтения атрибутов файла. Функция устанавливает поле v_op структуры vnode в значение, указывающее на вектор vnodeops для данной файловой системы, после чего на vnode запрашивается ссылка. Последним действием процедуры поиска является добавление нового вхождения в кэш просмотра каталогов и помещение его в конец списка LRU кэша.
Опубликовал katy
July 09 2015 08:23:39 ·
0 Комментариев ·
2867 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.