I_DIRTY_SYNC与I_DIRTY_DATASYNC

这篇博客探讨了在Minix系统中,I_DIRTY_SYNC和I_DIRTY_DATASYNC两个文件状态标志的含义。它们用于区分同步文件元数据的不同情况。fsync同步文件数据及元数据,而fdatasync仅同步数据,必要时更新元数据。I_DIRTY_DATASYNC标志用于标记元数据中存在重要变更,当该标志被设置,fdatasync会意识到需要立即回写元数据,以确保关键信息的同步,从而提高系统效率。
摘要由CSDN通过智能技术生成

I_DIRTY_SYNC与I_DIRTY_DATASYNC

浏览minix_sync_file时,被inode中I_DIRTY_SYNC与I_DIRTY_DATASYNC这两个标志弄糊涂了。一直在纳闷,同步metadata为什么还用两个标记?

int minix_sync_file(struct file * file, struct dentry *dentry, int datasync)
{
    struct inode *inode = dentry->d_inode;
    int err;

    err = sync_mapping_buffers(inode->i_mapping);

    if (!(inode->i_state & I_DIRTY))
        return err;

    if (datasync && !(inode->i_state & I_DIRTY_DATASYNC))
        return err;

    err |= minix_sync_inode(inode);
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值