diff --git a/fs/buffer.c b/fs/buffer.c index ceb30e9b76d5f45188e35a1d9651f4746e304f20..3c1a26b1fb6e0b019c293476e65ecebbf963cc1a 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -7,7 +7,7 @@ extern int end; -struct buffer_head * start_buffer = (struct buffer_head *) &end; +struct buffer_head * start_buffer; struct buffer_head * hash_table[NR_HASH]; static struct buffer_head * free_list; static struct task_struct * buffer_wait = NULL; @@ -160,6 +160,7 @@ struct buffer_head * bread(int dev,int block) { } void buffer_init(long buffer_end) { + start_buffer = (struct buffer_head *) &end; struct buffer_head * h = start_buffer; void * b; int i; @@ -169,6 +170,8 @@ void buffer_init(long buffer_end) { else b = (void *) buffer_end; + printk("buffer start at %x, end at %x\n", h, b); + while ( (b -= BLOCK_SIZE) >= ((void *) (h+1)) ) { h->b_dev = 0; h->b_dirt = 0;