Cómo comprobar en el kernel de Linux en la capa vfs si el objeto de archivo es para un directorio o un archivo - linux, filesystems, kernel, vfs

¿Cómo comprobar en Linux kernel en la capa vfs si el objeto del archivo es para un directorio o un archivo?

He encontrado que hay una función llamada is_dx(dir) que verifica esto, pero está presente en namei.c en ext3 o ext4. Necesito hacer esto en vfs capa que es independiente del sistema de archivos.

Respuestas

0 para la respuesta № 1

Teniendo a mano el inodo del directorio inicial, el código

examina la entrada que coincide con el primer nombre para obtener el

correspondiente inodo.

q Luego, el archivo de directorio que tiene ese nodo se lee del disco y

la entrada que coincide con el segundo nombre se examina para derivar el

correspondiente inodo.

q Este procedimiento se repite para cada nombre incluido en la ruta.

El caché de dentry acelera considerablemente el procedimiento

Las operaciones del sistema de archivos se realizan principalmente en el nivel de caché, por lo que

todos están bajo el bloqueo del kernel.


2 para la respuesta № 2

Qué hay de la S_ISDIR() macro definida en include/linux/stat.h? Se necesitainode->i_mode campo para verificar si el inodo en cuestión pertenece a un directorio o un archivo.


preguntas relacionadas
Menú