2011-04-26 90 views
3

我正在尝试构建一个基于磁盘的块级缓存,并将SSD用作HDD的缓存。我实施的方式是通过创建一个逻辑设备来开发。创建一个FS,在其上安装一个目录。当我注册我的模块时,我的回调函数将注册到我创建的设备上,因此对文件的任何请求都将发送到我的模块。在内存中维护缓存映射以查看请求的块是否存在于SSd缓存中,如果是,则将请求发送给SSd,否则将在模块初始化期间获得SSd和HDD的物理路径。我坚持从用于处理块I/O的内核数据结构中查找所请求块的逻辑块地址。有一个内核数据结构dio,其中包含称为next_block_forio的soem字段。但是这不会传递给驱动程序。 bio是基于驱动程序的数据结构。我应该查看哪些数据结构以查找LBA块级磁盘缓存,如何查找文件系统请求的块的逻辑块地址

回答

0

我相信您正在寻找struct bio中的bi_sector字段。