summaryrefslogtreecommitdiff
blob: 70015261aee42dd7600ec8bc497b3a0f00ff8da0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
--- a/common/exf.c
+++ b/common/exf.c
@@ -228,13 +228,18 @@
 		/*
 		 * XXX
 		 * A seat of the pants calculation: try to keep the file in
-		 * 15 pages or less.  Don't use a page size larger than 10K
+		 * 15 pages or less.  Don't use a page size larger than 8K
-		 * (vi should have good locality) or smaller than 1K.
+		 * (vi should have good locality) or smaller than 1K. DB asks
+		 * for a power of two, so give it one.
 		 */
 		psize = ((sb.st_size / 15) + 1023) / 1024;
-		if (psize > 10)
+		if (psize >= 8)
-			psize = 10;
+			psize = 8;
+		else if (psize >= 4)
+			psize = 4;
+		else if (psize >= 2)
+			psize = 2;
-		if (psize == 0)
+		else
 			psize = 1;
 		psize *= 1024;