void get_cwd(char* buf)
{
char *result;
current->fs->pwd;
result = get_dentry_path(current->fs->pwd);
memcpy(buf, result, strlen(result)+1);
kfree(result);
}
error: dereferencing pointer to incomplete type
The error points to current->fs->pwd;
includes:
#include <asm/stat.h>
#include <linux/fs.h>
#include <linux/file.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/dirent.h>
#include <linux/sched.h>
#include <asm/uaccess.h>
#include <asm/current.h>
#include <linux/path.h>
If I type current->fs; on 5th line gcc don’t give error on this line. The problem is with pwd field.
This question is kind of stale but I ran into the same issue again trying to implement getcwd in kernel v2.6.33. Since this is the most relevant result that comes up when searched for “dereferencing pointer to incomplete type current->fs”, it would be good to have the solution for future reference.
The solution is to include both of these headers: