filename_lookup is not available in RHEL 8 (kernel 4.18.x), whats the alternate?

Posted on

Our kernel module has been using filename_lookup() API for a while, we noticed it is not exported anymore in RHEL8 with kernel 4.18 (symbol not found in /proc/kallsyms).

What is the alternative API/call we can use in place of filename_lookup().

how about link_path_walk(), it takes path name and returns struct nameidata
static int link_path_walk(const char *name, struct nameidata *nd)

What is the impact of using link_path_walk() in place of filename_lookup()?

Is it an exact replacement for filename_lookup() and can be used safely with out any functionality change?

Another one is kern_path(), but it returns struct path *, but not a struct nameidata, like filename_lookup()

Our code is heavily dependent on the struct nameidata and we cannot find any good way to build struct nameidata from struct path, is there a way to construct nameidata from struct path

thank you,
Kumar Talinki