来自「linux内核学习笔记 希望想看的人可以很快下载到」· 代码 · 共 31 行

TXT
31
字号
any problems, send mails to lysindybear@sina.com.cn


相关文件
	/include/linux/locks.h
	/fs/buffer.c
	/fs/ext2/ialloc.c(ext2_free_inode)


在linux系统中,几乎所有的和关缓存的操作都时同步的,也就是你仅仅需要将所要进行的读写数据结构
交给缓存,他会替你找一个合适的时间进行实际的读写操作,但是有些时候我们需要进行异步的读写操作,
这个时候,可以遵循下面的步骤

读操作:
	很简单,系统已经提供了bread这个函数,这个函数就提供异步的读功能。

写操作:
	稍微复杂一点。
	bh = getblk();		//的到一个buffer_head结构
	mark_buffer_dirty(bh);	//mark这个bh为脏
	ll_rw_block (WRITE, 1, &bh);	//进行写操作
	wait_on_buffer (bh);		//等待完成
	以上的步骤完成以后,这个bh应该是uptodate, unlock的

注意,这个办法不能用于数据量过大的地方使用,因为其中的mark_buffer_dirty当数据过大的时候,会
陷入死循环!!!!!!!!!!!!!11
	
	


	

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?