コードは次のとおりです。
static inline struct list_head * d_hash(struct dentry *parent, unsigned long hash)
{
hash += (unsigned long)parent / L1_CACHE_BYTES;
hash = hash^(hash>>D_HASHBITS)^(hash>>D_HASHBITS*2);
return dentry_hashtable + (hash & D_HASHMASK);
}
この機能を理解するには?
特に、「hash = hash^(hash>>D_HASHBITS)^(hash>>D_HASHBITS*2);
」の行
ありがとうございました
PS: コード形式: http://lxr.oss.org.cn/source/fs/dcache.c?v=2.6.16#L885