shithub: neoventi

Download patch

ref: 77e30263409bc04ec12db3a0bd162f8f821f016d
parent: dec63a701eceb2ad33570f3213f40c6661a29d1a
author: Noam Preil <noam@pixelhero.dev>
date: Mon Aug 4 09:32:14 EDT 2025

disk: fix block writes

--- a/disk.c
+++ b/disk.c
@@ -261,8 +261,8 @@
 	if(pwrite(index.arena->fd, index.arena->buf, index.arena->blocksize, index.arena->base+(index.arena->block*index.arena->blocksize)) != index.arena->blocksize){
 		sysfatal("flush failed: %r");
 	}
-		index.arena->buf = nil;
-		cacheunlock(index.arena->index, index.arena->block);
+	index.arena->buf = nil;
+	cacheunlock(index.arena->index, index.arena->block);
 }
 
 // Advance the block and, if needed, the arena.
@@ -275,6 +275,7 @@
 		blockflush();
 	}
 	index.arena->block += 1;
+	index.arena->arenastats.used += index.arena->blockremain;
 	index.arena->offset = 0;
 	index.arena->blockremain = index.arena->blocksize;
 	if(index.arena->block * index.arena->blocksize >= index.arena->size)
@@ -325,6 +326,7 @@
 {
 	index.arena->offset += n;
 	index.arena->blockremain -= n;
+	index.arena->arenastats.used += n;
 }
 
 int
@@ -359,7 +361,7 @@
 		if(len != n)
 			blockadvance();
 	}
-	index.arena->arenastats.used += len+38;
+	blockupdate(len);
 	index.arena->arenastats.uncsize += len;
 	index.arena->arenastats.clumps += 1;
 	blockflush();
--