Go up to Operações sobre Ficheiros
Go forward to Cache de Acesso a Directórios
Travessia do nome
lookupn() recebe um nome e retorna um ptr para vnode:
- Verifica se o nó-v inicial é directório (se não for final).
- Se componente é ".." e cwd raíz, apanhe o componente seguinte.
- se componente é ".." e cwd VROOT, acesse mountpoint.
- se componente não fôr encontrado e fôr último, retorne sucesso,
passando ptr para o pai e mantendo hold. Senão ENOENT.
- se componente novo é um ponto de montagem encontre o vfs
correspondente e chame vfs_root para encontrar o vnode raíz.
- Se v_type == VLNK, traduza com (VOP_SYMLINK), junte a tradução e
reinicialize (se caminho absoluto, comece da raíz).
lookupn() pode desactivar avaliação de links simbólicos.
Existe tb limite máximo para evitar ciclos.
- Liberta directório (segurado ou por VOP_LOOKUP ou por
inicialização.
- Se encontrou, mantenha o hold e regresse um ptr para o vnode. Se
caminho esgotado e não encontrou termine. Senão volte ao ciclo.
vitor@cos.ufrj.br