浏览代码

dcache: subtract d_hash_shift from 32 in advance

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Alexey Dobriyan 7 年之前
父节点
当前提交
854d3e6343
共有 1 个文件被更改,包括 3 次插入1 次删除
  1. 3 1
      fs/dcache.c

+ 3 - 1
fs/dcache.c

@@ -110,7 +110,7 @@ static struct hlist_bl_head *dentry_hashtable __read_mostly;
 
 
 static inline struct hlist_bl_head *d_hash(unsigned int hash)
 static inline struct hlist_bl_head *d_hash(unsigned int hash)
 {
 {
-	return dentry_hashtable + (hash >> (32 - d_hash_shift));
+	return dentry_hashtable + (hash >> d_hash_shift);
 }
 }
 
 
 #define IN_LOOKUP_SHIFT 10
 #define IN_LOOKUP_SHIFT 10
@@ -3593,6 +3593,7 @@ static void __init dcache_init_early(void)
 					&d_hash_mask,
 					&d_hash_mask,
 					0,
 					0,
 					0);
 					0);
+	d_hash_shift = 32 - d_hash_shift;
 }
 }
 
 
 static void __init dcache_init(void)
 static void __init dcache_init(void)
@@ -3619,6 +3620,7 @@ static void __init dcache_init(void)
 					&d_hash_mask,
 					&d_hash_mask,
 					0,
 					0,
 					0);
 					0);
+	d_hash_shift = 32 - d_hash_shift;
 }
 }
 
 
 /* SLAB cache for __getname() consumers */
 /* SLAB cache for __getname() consumers */