Chinaunix

标题: 关于sync的一个问题 [打印本页]

作者: ggzwtj    时间: 2011-11-27 16:46
标题: 关于sync的一个问题
static void do_sync(unsigned long wait){
        wakeup_pdflush(0);
        sync_inodes(0);
        DQUOT_SYNC(NULL);
        sync_supers();
        sync_filesystems(0);
        sync_filesystems(wait);
        sync_inodes(wait);
        if (!wait)
                printk("Emergency Sync complete\n");
        if (unlikely(laptop_mode))
                laptop_sync_completion();
}

在sys_sync中会调用函数do_sync。
1、这里的wakeup_pdflush会启动一个pdflush进程来刷出脏数据,但是这里会设置WB_SYNC_NONE,也就不等待完成,那么它会不会和下面的代码冲突?
2、wakeup_pdflush同步的是不是只是普通数据,而不是元数据?
作者: ggzwtj    时间: 2011-11-27 17:36
还有一个问题就是,在刚开始已经调用了__sync_single_inode,这样不是已经把inode和普通数据都刷出了,那为什么后面还要调用呢?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2