基于 commit
commit ffc253263a1375a65fa6c9f62a893e9767fbebfa (HEAD, tag: v6.6)
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date: Sun Oct 29 16:31:08 2023 -1000
Linux 6.6
分析带缓存的文件读
从 generic_file_read_iter
作为入口,首先判断是不是 direct io
,如果不是,那么直接调用 filemap_read
filemap_read
该函数主要准备一些数据结构和状态,比如初始化 fbatch
,调用 filemap_get_pages
获取数据,最后将 fbatch
中的数据拷贝到 iov_iter
中