1. 调用结构
高: bread, breada, bread_page
中: getblk
低 get_hash_table, find_buffer
2. static struct buffer_head * find_buffer(int dev, int block)
在高速缓冲区找到符合条件dev, block的缓冲头buffer_head
3. struct buffer_head * get_hash_table(int dev, int block)
调用函数find_buffer, 找符合条件的缓冲头buffer_head
4. struct buffer_head * getblk(int dev,int block)
取指定dev, block的缓冲头,
如果找到, 则返回buffer_head
否则, 创建一个新的, 并加入到链表中
5. struct buffer_head * bread(int dev,int block)
从缓冲区中读取dev, block对应的缓冲区
但如果在高速缓冲区中不存在, 则需要从设备中读取到缓冲块中
6. void bread_page(unsigned long address,int dev,int b[4])
同bread, 只是同时读四个块
7. struct buffer_head * breada(int dev,int first, ...)
同bread, 只是可以指定多个块同时读