日期:2014-05-16  浏览次数:20940 次

求教vfs_readdir的问题
C/C++ code

int vfs_readdir(struct file *file, filldir_t filler, void *buf)
{
    struct inode *inode = file->f_path.dentry->d_inode;
    int res = -ENOTDIR;
    if (!file->f_op || !file->f_op->readdir)
        goto out;

    res = security_file_permission(file, MAY_READ);
    if (res)
        goto out;

    res = mutex_lock_killable(&inode->i_mutex);
    if (res)
        goto out;

    res = -ENOENT;
    if (!IS_DEADDIR(inode)) {
        res = file->f_op->readdir(file, buf, filler);
        file_accessed(file);
    }
    mutex_unlock(&inode->i_mutex);
out:
    return res;
}

EXPORT_SYMBOL(vfs_readdir);



vfs_readdir是导出函数。但是这个vfs_readdir函数导出在哪个内核模块当中还是什么共享文件中呢。如何获取当前系统vfs_readdir函数的地址呀。
谢谢大家。


------解决方案--------------------
直接extern 声明,然后编译就好了,加载的时候内核自动帮你链接到正确的那个的。