code: plan9front

Download patch

ref: 8c046fe451b63293e5cdcb9d033cca0a37be66da
parent: 005bd2b7e10b0084f74d1af3f9523551348b31d9
author: Ori Bernstein <ori@eigenstate.org>
date: Tue Jun 4 13:49:49 EDT 2024

gefs: revert cacheflag()

it seems likely that it was causing writeback
bugs, revert until further testing, and likely
move to a different approach.

--- a/sys/src/cmd/gefs/blk.c
+++ b/sys/src/cmd/gefs/blk.c
@@ -937,7 +937,6 @@
 			qe.bp = p->bp;
 			qe.b = nil;
 			qput(a->sync, qe);
-			cacheflag(p->bp.addr, Bfreed);
 			if(p->b != nil){
 				clrflag(p->b, Blimbo);
 				setflag(p->b, Bfreed);
--- a/sys/src/cmd/gefs/cache.c
+++ b/sys/src/cmd/gefs/cache.c
@@ -132,23 +132,6 @@
 	qunlock(&fs->lrulk);
 }
 
-void
-cacheflag(vlong addr, int flg)
-{
-	Bucket *bkt;
-	u32int h;
-	Blk *b;
-
-	h = ihash(addr);
-	bkt = &fs->bcache[h % fs->cmax];
-	qlock(&fs->lrulk);
-	for(b = bkt->b; b != nil; b = b->hnext)
-		if(b->bp.addr == addr)
-			setflag(b, flg);
-	qunlock(&fs->lrulk);
-
-}
-
 Blk*
 cacheget(vlong addr)
 {
--- a/sys/src/cmd/gefs/fns.h
+++ b/sys/src/cmd/gefs/fns.h
@@ -47,7 +47,6 @@
 void	lrubot(Blk*);
 void	cacheins(Blk*);
 void	cachedel(vlong);
-void	cacheflag(vlong, int);
 Blk*	cacheget(vlong);
 Blk*	cachepluck(void);