本文使用内核源码版本为:2.6.32
vfs_stat函数原型:int vfs_stat(char __user *name, struct kstat *stat)
struct kstat定义位于:include/fs.h
struct kstat {
u64 ino;
dev_t dev;
umode_t mode;
unsigned int nlink;
uid_t uid;
gid_t gid;
dev_t rdev;
loff_t size;
struct timespec atime;
struct timespec mtime;
struct timespec ctime;
unsigned long blksize;
unsigned long long blocks;
};该结构体封装了文件的基本属性
函数 vfs_stat 定义位于:fs/stat.c
int vfs_stat(char __user *name, struct kstat *stat)
{
return vfs_fstatat(AT_FDCWD, name, stat, 0); //调用了vfs_fstatat
}
EXPORT_SYMBOL(vfs_stat);
函数 vfs_fstatat 定义于相同文件中
int vfs_fstatat(int dfd, char __user *filename, struct kstat *stat, int flag)
{
struct path path;
int error =

本文探讨了2.6.32内核版本中的vfs_stat函数,详细介绍了该函数的用途,包括其在处理用户提供的路径、符号链接及安全性方面的核心功能。通过对struct kstat结构的理解,揭示了文件系统状态跟踪的机制。
376

被折叠的 条评论
为什么被折叠?



