在 Linux 内核模块中,如何获取已知路径的 inode?

6
在Linux内核模块(即在内核空间中运行),我有一个文件的路径。
哪些函数可以用来获取该文件的inode?具体来说,我需要获取指向文件inode的“inode *”。
3个回答

5
你不需要打开文件。内核中有一个查找函数可将char *name转换为struct nameidata。请参考path_lookup
你可能还想了解路径解析算法的工作原理,可以在这里查看。

1

你可以使用filp_open函数,但正如函数的注释所述,在内核模块中打开文件并不是你想要做的事情。

这里有一个function,它将返回你路径的struct file。从那里,我认为你可以进一步访问inode。

额外奉上:也许这不是你打算做的事情,但这里有一篇文章介绍了从内核读写文件以及为什么你不应该这样做。


感谢提醒,但我并不打算去读这个文件。 - hayalci

1

根据我在内核方面的经验,我建议您始终选择顶层函数,如path_lookup,而不是中间函数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接