ref: adab9d8ac6412b5dadc3dd7dd762ba63568c63fb
parent: 5682c682130c8cbff0cf7538acc0c8a03e5d3d4b
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Sun Jan 5 19:51:36 EST 2025
gefs: getblk(): remove duplicate getcallerpc(), check b->bp.gen from cache
--- a/sys/src/cmd/gefs/blk.c
+++ b/sys/src/cmd/gefs/blk.c
@@ -735,18 +735,15 @@
}
if((b = cacheget(bp.addr)) != nil){
assert(checkflag(b, 0, Bfreed));
- b->lasthold = getcallerpc(&bp);
- qunlock(&fs->blklk[i]);
- poperror();
- return b;
+ assert(b->bp.gen == bp.gen);
+ } else {
+ b = cachepluck();
+ b->alloced = getcallerpc(&bp);
+ readblk(b, bp, flg);
+ b->bp.gen = bp.gen;
+ cacheins(b);
}
- b = cachepluck();
- b->alloced = getcallerpc(&bp);
- b->alloced = getcallerpc(&bp);
- readblk(b, bp, flg);
- b->bp.gen = bp.gen;
b->lasthold = getcallerpc(&bp);
- cacheins(b);
qunlock(&fs->blklk[i]);
poperror();
--
⑨