39、深入理解块设备驱动程序:从基础到高级应用

深入理解块设备驱动程序:从基础到高级应用

1. 清理操作与 fsync_dev 调用

在块设备驱动的操作中,清理工作至关重要。以下代码展示了清理队列和全局数组的操作:

blk_cleanup_queue(BLK_DEFAULT_QUEUE(major));
/* Clean up the global arrays */
read_ahead[major] = 0;
kfree(blk_size[major]);
blk_size[major] = NULL;
kfree(blksize_size[major]);
blksize_size[major] = NULL;
kfree(hardsect_size[major]);
hardsect_size[major] = NULL;

这里,调用 fsync_dev 是必要的,它用于释放内核在各种缓存中对设备的所有引用。 fsync_dev block_fsync 的实现,而 block_fsync 是块设备的 fsync “方法”。

2. 头文件 blk.h

所有块设备驱动都应包含头文件 <linux/blk.h> 。该文件定义了块设备驱动中常用的许多代码,并提供了处理 I/O 请求队列的函数。不过, blk.h 头文件比较特殊,它基于

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值