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);