正如您在http://lxr.linux.no/#linux+v3.9.5/fs/namei.c#L1751中看到的
for(;;) {
struct qstr this;
long len;
int type;
err = may_lookup(nd);
if (err)
break;
len = hash_name(name, &this.hash);
在最后一行,我从来没有发现 struct qstr 有一个成员名称哈希,我唯一发现的是:
struct qstr {
union {
struct {
HASH_LEN_DECLARE;
};
u64 hash_len;
};
const unsigned char *name;
};
谁能告诉我发生了什么?