34 | 块设备(上)

2020-05-11  本文已影响0人  AndyWei123
image.png

gendisk: gen 的意思是 general 通用的意思,也就是说,所有的块设备,不仅仅是硬盘 disk,都会用一个 gendisk 来表示

bdev 伪文件系统
block_device 结构如下

struct block_device {
dev_t      bd_dev;  /* not a kdev_t - it's a search key */
int      bd_openers;
struct super_block *  bd_super;
......
struct block_device *  bd_contains;
unsigned    bd_block_size;
struct hd_struct *  bd_part;
unsigned    bd_part_count;
int      bd_invalidated;
struct gendisk *  bd_disk;
struct request_queue *  bd_queue;
struct backing_dev_info *bd_bdi;
struct list_head  bd_list;
......
} ; 

gendisk 指向该块设备的gendisk ,他们是一对多的关系,比如开一个硬盘被分成两个分区,那么block_device 会有三个,一个总的两个分的,request_queue 处理请求的队列,hd_struct 指各个分区,db_contains 指向总的块的block_device


image.png
上一篇 下一篇

猜你喜欢

热点阅读