- 论坛徽章:
- 0
|
新手入门, 在内核代码fs/stat.c文件里,查看stat函数的实现时,在调用的函数
static int cp_old_stat(struct kstat *stat, struct __old_kernel_stat __user * statbuf)
中,有以下
tmp.st_dev = old_encode_dev(stat->dev);
tmp.st_ino = stat->ino;
if (sizeof(tmp.st_ino) < sizeof(stat->ino) && tmp.st_ino != stat->ino)
return -EOVERFLOW;
tmp.st_mode = stat->mode;
tmp.st_nlink = stat->nlink;
if (tmp.st_nlink != stat->nlink)
return -EOVERFLOW;
不明白为什么在 tmp.st_nlink = stat->nlink之后,还要判断if (tmp.st_nlink != stat->nlink), 它们不是一定相等的吗???什么情况下会不成立吗? |
|