From ed35a1cfad3b4ca2dc2cc05fd370a7b8897f8623 Mon Sep 17 00:00:00 2001
From: jxiong <jxiong>
Date: Wed, 27 Jun 2007 12:20:18 +0000
Subject: [PATCH] Set the handle_hash size to 4096 if lustre is working under
 UML(user mode linux).

---
 lustre/obdclass/lustre_handles.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/lustre/obdclass/lustre_handles.c b/lustre/obdclass/lustre_handles.c
index 328d9f6238..89388f6477 100644
--- a/lustre/obdclass/lustre_handles.c
+++ b/lustre/obdclass/lustre_handles.c
@@ -52,7 +52,16 @@ static struct handle_bucket {
 
 static atomic_t handle_count = ATOMIC_INIT(0);
 
+#ifdef __arch_um__
+/* For unknown reason, UML uses kmalloc rather than vmalloc to allocate
+ * memory(OBD_VMALLOC). Therefore, we have to redefine the
+ * HANDLE_HASH_SIZE to make the hash heads don't exceed 128K.
+ */
+#define HANDLE_HASH_SIZE 4096
+#else
 #define HANDLE_HASH_SIZE (1 << 14)
+#endif /* ifdef __arch_um__ */
+
 #define HANDLE_HASH_MASK (HANDLE_HASH_SIZE - 1)
 
 /*
-- 
GitLab