linux系统中怎么调用sync源码
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇文章给大家分享的是有关linux系统中怎么调用sync源码,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。int sys_sync(v
千家信息网最后更新 2026年10月31日linux系统中怎么调用sync源码
本篇文章给大家分享的是有关linux系统中怎么调用sync源码,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
int sys_sync(void)
{
int i;
struct buffer_head * bh;
// 把所有inode写入buffer,等待回写,见下面代码
sync_inodes(); /* write out inodes into buffers */
bh = start_buffer;
for (i=0 ; i wait_on_buffer(bh);
if (bh->b_dirt)
// 请求底层写硬盘操作,等待底层驱动回写到硬盘,不一定立刻写入
ll_rw_block(WRITE,bh);
}
return 0;
}
我们先看sync_inode。该函数把inode table里的,即进程打开的文件对应的inode节点,写入到buffer里。
// 遍历所有inode,从硬盘读包括该inode的数据块,然后用内存的inode覆盖硬盘读进来的,存在buffer里,等待回写
void sync_inodes(void)
{
int i;
struct m_inode * inode;
inode = 0+inode_table;
for(i=0 ; i wait_on_inode(inode);
// 管道的内容存放在内存,所以不需要同步
if (inode->i_dirt && !inode->i_pipe)
write_inode(inode);
}
}
// 先把inode从硬盘中读进来,然后覆盖,等待回写
static void write_inode(struct m_inode * inode)
{
struct super_block * sb;
struct buffer_head * bh;
int block;
lock_inode(inode);
if (!inode->i_dirt || !inode->i_dev) {
unlock_inode(inode);
return;
}
if (!(sb=get_super(inode->i_dev)))
panic("trying to write inode without device");
// 算出inode的块号,2 + inode位图块数 + 块位图块数 + inode的相对偏移
block = 2 + sb->s_imap_blocks + sb->s_zmap_blocks +
(inode->i_num-1)/INODES_PER_BLOCK;
// 读入包含该inode的整个数据块
if (!(bh=bread(inode->i_dev,block)))
panic("unable to read i-node block");
// 找到数据块中inode所属的位置,写到高速缓存等待回写到硬盘
((struct d_inode *)bh->b_data)
[(inode->i_num-1)%INODES_PER_BLOCK] =
*(struct d_inode *)inode;
bh->b_dirt=1;
inode->i_dirt=0;
brelse(bh);
unlock_inode(inode);
}
以上就是linux系统中怎么调用sync源码,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
硬盘
数据
源码
系统
位图
内存
底层
更多
知识
篇文章
实用
代码
位置
内容
函数
就是
工作会
所属
文件
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网黑科技
有格互联网科技
互联网新科技
高科技互联网
科技互联网技术
平安科技 互联网
互联网科技论文
云电互联网科技
狮子座互联网科技有限公司
汇久创客互联网科技
互联网科技公司名称
安控科技rtu产品工业互联网
科技与互联网的利与弊
宁夏众和广鑫互联网科技有限公司
受益于互联网科技的高速发展
哈尔滨屹滨互联网科技有限公司
西安有哪些互联网高科技企业
普陀区互联网教育科技管理办法
互联网公司属于科技吗
小牛互联网科技有限公司地址
耶加雪菲
麻工互联网科技
金融科技与互联网金融
成都互联网科技公司
深圳互联网科技怎么样
玖二柒互联网科技公司待遇
互联网科技热点资讯
成都互联网科技公司100强
佛山市翊博互联网络科技有限公司
宁波跨境商互联网科技有限公司