El proceso de lectura de archivos en el sistema de archivos LFS
El proceso de lectura de archivos en el sistema de archivos LFS es el siguiente:
Proceso
1. Análisis basado en linux 2.6.26
2. Analizando el proceso de implementación de la función de lectura de Linux, la función de entrada es sys_read de fs/read_write.c
3, y la definición de archivo->f_op->read es la función do_sync_read
4, sys_read->vfs_read->do_sync_read
5. La definición de filp->f_op->aio_read se puede ver en la definición de file_operation como generic_file_aio_read. sys_read->vfs_read->do_sync_read->generic_file_aio_read, ubicado en mm/filemap.c
6 Si el archivo de destino define el indicador O_DIRECT, omita la capa de búfer directamente y use la función generic_file_direct_IO para pasar la lectura. solicite directamente a Si la capa del controlador del dispositivo de bloque no está definida, se llama a do_generic_file_read(filp,ppos,&desc,file_read_actor). La estructura del tercer parámetro read_descriptor_t guarda información relacionada con la lectura y el cuarto parámetro file_read_actor se usa para esperar datos. a transferir a Después de la capa de búfer del kernel, copie los datos a la capa de usuario.