ref: c91fd355186fc44d6f107d300dee81eafbcec280
parent: 66d2e1ac59a6ff1bc624eed543cb0edd27bbf9c3
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();
--
⑨