--- 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;
 }
