From eca4427bb835d3b19581a9cb0c3d3a3e4c1487d6 Mon Sep 17 00:00:00 2001 From: acevest Date: Thu, 5 Feb 2026 21:07:40 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E5=A4=8D=E6=B2=A1=E6=9C=89=E6=AD=A3?= =?utf8?q?=E7=A1=AE=E5=88=9D=E5=A7=8B=E5=8C=96block=20buffer=E7=9A=84?= =?utf8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- fs/buffer.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/fs/buffer.c b/fs/buffer.c index 2b4c2d0..83bc864 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -220,6 +220,10 @@ void init_buffer() { if (page_left_space < blocksize) { data = (void*)page2va(alloc_one_page(0)); page = va2page(data); + page_left_space = PAGE_SIZE; + + // printk("blocksize %u\n", blocksize); + // printk("page[%u] %08x\n", page->index, data); } bbuffer_t* b = kmem_cache_alloc(bbufer_kmem_cache, 0); @@ -228,7 +232,8 @@ void init_buffer() { b->block = 0; b->block_size = blocksize; atomic_set(&(b->ref_count), 0); - b->data = data + j * blocksize; + // b->data = data + (page_left_space - blocksize); + b->data = data + (PAGE_SIZE - page_left_space); b->dev = 0; b->page = page; b->uptodate = 0; @@ -240,6 +245,8 @@ void init_buffer() { list_add(&b->node, &store[i].free_list); + // printk("[%u] bbuffer[%u].data %08x\n", blocksize, j, b->data); + page_left_space -= blocksize; } } -- 2.47.0