From cc82756d5993fff8eaedcfb25ce9f76c1ee823b6 Mon Sep 17 00:00:00 2001 From: roy Date: Sun, 19 Jul 2026 14:59:48 +0800 Subject: [PATCH] Persist newly allocated extent mapping simplefs_file_get_block() fills in a new extent but leaves the ei_block buffer clean, so the mapping reaches disk only if some later operation happens to dirty the same buffer. If the buffer is reclaimed first, the extent is lost and its data blocks leak. --- file.c | 1 + 1 file changed, 1 insertion(+) diff --git a/file.c b/file.c index 557abc9..c49e0c1 100644 --- a/file.c +++ b/file.c @@ -63,6 +63,7 @@ static int simplefs_file_get_block(struct inode *inode, extent ? index->extents[extent - 1].ee_block + index->extents[extent - 1].ee_len : 0; + mark_buffer_dirty(bh_index); } else { bno = index->extents[extent].ee_start + iblock - index->extents[extent].ee_block;