--- linux/fs/dcache.c.bigmem-dcache	Tue Nov 16 18:41:05 1999
+++ linux/fs/dcache.c	Tue Nov 16 18:42:19 1999
@@ -860,12 +860,11 @@
 	return ino;
 }
 
-void __init dcache_init(void)
+void __init dcache_init(unsigned long memory_size)
 {
 	int i, order;
 	struct list_head *d;
 	unsigned int nr_hash;
-	unsigned long memory_size;
 
 	/* 
 	 * A constructor could be added for stable state like the lists,
@@ -883,9 +882,6 @@
 	if (!dentry_cache)
 		panic("Cannot create dentry cache");
 
-	memory_size = num_physpages << PAGE_SHIFT;
-	memory_size >>= 13;
-	memory_size *= 2 * sizeof(void *);
 	for (order = 0; ((1UL << order) << PAGE_SHIFT) < memory_size; order++);
 
 	do {
--- linux/init/main.c.bigmem-dcache	Tue Nov 16 18:41:06 1999
+++ linux/init/main.c	Tue Nov 16 18:41:08 1999
@@ -1217,7 +1217,7 @@
 #endif
 	uidcache_init();
 	filescache_init();
-	dcache_init();
+	dcache_init(memory_end-memory_start);
 	vma_init();
 	buffer_init(memory_end-memory_start);
  	page_cache_init(memory_end-memory_start);
--- linux/include/linux/fs.h.bigmem-dcache	Tue Nov 16 18:41:06 1999
+++ linux/include/linux/fs.h	Tue Nov 16 18:41:08 1999
@@ -171,7 +171,7 @@
 extern void buffer_init(unsigned long);
 extern void inode_init(void);
 extern void file_table_init(void);
-extern void dcache_init(void);
+extern void dcache_init(unsigned long);
 
 typedef char buffer_block[BLOCK_SIZE];
 
