shithub: neoventi

Download patch

ref: ca929c334fedc59fc1240b2c64b887082ef331f2
parent: 8e31146d45d0612b82a5438012e6ed03be3995a9
author: Noam Preil <noam@pixelhero.dev>
date: Thu Jul 4 17:04:43 EDT 2024

disk: return error to client on read failure

--- a/disk.c
+++ b/disk.c
@@ -68,8 +68,10 @@
 	bucket -= s_sect->start;
 	u16int key = s_sect->cacheindex + (bucket >> 16);
 	if(!cachelookup((char**)&buf, key, bucket & 0xffff)){
-		if(pread(s_sect->fd, (char*)buf, s_sect->blocksize, s_sect->blockbase + (bucket << s_sect->blocklog)) != s_sect->blocksize)
-			sysfatal("Failed to read bucket");
+		if(pread(s_sect->fd, (char*)buf, s_sect->blocksize, s_sect->blockbase + (bucket << s_sect->blocklog)) != s_sect->blocksize){
+			werrstr("Failed to read bucket");
+			return 0;
+		}
 	}
 	if(s_sect->bucketmagic && U32GET(buf + 2) != s_sect->bucketmagic)
 		sysfatal("index is corrupt: invalid bucket magic: sect %ux, buck %ux", s_sect->bucketmagic, U32GET(buf + 2));
--