From: acevest Date: Thu, 5 Feb 2026 13:07:40 +0000 (+0800) Subject: 修复没有正确初始化block buffer的问题 X-Git-Url: http://repos.zhaoyanbai.com/sitemap.xml?a=commitdiff_plain;h=eca4427bb835d3b19581a9cb0c3d3a3e4c1487d6;p=kernel.git 修复没有正确初始化block buffer的问题 --- 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; } }