2009年11月29日星期日

一个c语言小技巧,摘自minix fs

我说的小技巧就是最后的那句 err |= minix_sync_inode(inode);

真是懒的可以,Linus真是惜行如jing啊, 前面的错误检测和后面的都一并检查了,不过这里也有一个前提,就是 sync_mapping_buffers错误了,调用minix_sync_inode也不会导致更严重的问题。

学习学习。。。




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);
return err ? -EIO : 0;
}

没有评论: