内核的vfs层如果发现请求的文件数据在page cache中,直接从page cache中获取,而不用和块设备交互 。...;
if (f.file) {
// 获取struct file当前读取的pos
loff_t pos = file_pos_read(f.file);
// 经过vfs_read->具体磁盘文件系统的...具体磁盘文件系统的write调用
ret = vfs_write(f.file, buf, count, &pos);
if (ret >= 0)
// 更改struct file中的读写的位置...的写入
ret = __blockdev_direct_IO(iocb, inode, inode->i_sb->s_bdev, iter,get_block_func, ext4_end_io_dio...__blockdev_direct_IO(iocb, inode, inode->i_sb->s_bdev,iter, ext4_dio_get_block, NULL, NULL, 0