--- 2.4.1/fs/inode.c Mon Jan 15 18:20:14 2001 +++ 2.4.1/fs/inode.c Tue Jan 30 22:54:42 2001 @@ -728,8 +728,8 @@ static inline unsigned long hash(struct super_block *sb, unsigned long i_ino) { - unsigned long tmp = i_ino | ((unsigned long) sb / L1_CACHE_BYTES); - tmp = tmp + (tmp >> I_HASHBITS) + (tmp >> I_HASHBITS*2); + unsigned long tmp = i_ino ^ ((unsigned long) sb / L1_CACHE_BYTES); + tmp = tmp ^ (tmp >> I_HASHBITS) ^ (tmp >> I_HASHBITS*2); return tmp & I_HASHMASK; }