patch-2.1.104 linux/fs/buffer.c
Next file: linux/fs/coda/cache.c
Previous file: linux/fs/binfmt_elf.c
Back to the patch index
Back to the overall index
- Lines: 53
- Date:
Thu Jun 4 22:53:50 1998
- Orig file:
v2.1.103/linux/fs/buffer.c
- Orig date:
Thu May 14 19:47:43 1998
diff -u --recursive --new-file v2.1.103/linux/fs/buffer.c linux/fs/buffer.c
@@ -10,7 +10,6 @@
* data, of course), but instead letting the caller do it.
*/
-/* Some bdflush() changes for the dynamic ramdisk - Paul Gortmaker, 12/94 */
/* Start bdflush() with kernel_thread not syscall - Paul Gortmaker, 12/95 */
/* Removed a lot of unnecessary code and simplified things now that
@@ -21,6 +20,10 @@
* hash table, use SLAB cache for buffer heads. -DaveM
*/
+/* Added 32k buffer block sizes - these are required older ARM systems.
+ * - RMK
+ */
+
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/major.h>
@@ -46,9 +49,13 @@
#include <asm/io.h>
#include <asm/bitops.h>
-#define NR_SIZES 5
-static char buffersize_index[17] =
-{-1, 0, 1, -1, 2, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, 4};
+#define NR_SIZES 7
+static char buffersize_index[65] =
+{-1, 0, 1, -1, 2, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1,
+ 4, -1, -1, -1, -1, -1, -1, -1, -1,-1, -1, -1, -1, -1, -1, -1,
+ 5, -1, -1, -1, -1, -1, -1, -1, -1,-1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,-1, -1, -1, -1, -1, -1, -1,
+ 6};
#define BUFSIZE_INDEX(X) ((int) buffersize_index[(X)>>9])
#define MAX_BUF_PER_PAGE (PAGE_SIZE / 512)
@@ -637,13 +644,9 @@
if (!blksize_size[MAJOR(dev)])
return;
- if (size > PAGE_SIZE)
- size = 0;
-
- switch (size) {
- default: panic("Invalid blocksize passed to set_blocksize");
- case 512: case 1024: case 2048: case 4096: case 8192: ;
- }
+ /* Size must be a power of two, and between 512 and PAGE_SIZE */
+ if (size > PAGE_SIZE || size < 512 || (size & (size-1)))
+ panic("Invalid blocksize passed to set_blocksize");
if (blksize_size[MAJOR(dev)][MINOR(dev)] == 0 && size == BLOCK_SIZE) {
blksize_size[MAJOR(dev)][MINOR(dev)] = size;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov