【问题标题】:Linux Kernel - Refreshing VFS Dentry CacheLinux 内核 - 刷新 VFS Dentry 缓存
【发布时间】:2010-04-25 00:25:09
【问题描述】:

我编写了一个系统调用来打开一个目录并获取文件对象和dentry 结构。我试图使用 list_for_each() 宏列出所有条目,包括子目录中的条目。问题是它只显示当前在 dentry 缓存中的内容。如果我用 nautilus 打开目录,然后重新运行系统调用,则会列出所有条目。有没有办法检查条目的确切列表或刷新缓存?

f = s_open(tpath);

fle = fget(f);
d = fle->f_path.dentry;
list_for_each ( dentry ) {   
    ...
}
sys_close(f);

【问题讨论】:

  • 是否有某些特殊原因您在用户空间中这样做?

标签: linux linux-kernel


【解决方案1】:

为什么要使用系统调用来读取目录的内容?听起来你真的应该在用户空间中,然后你应该使用 opendir 之类的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 2012-07-02
    • 2013-02-07
    • 2016-03-20
    相关资源
    最近更新 更多