| cache_lookup#(P_INO, DIRS, FILES, ASYNCED; DENT, ERR, DCACHE) {if pre-lookup(P_INO, DENT, DIRS, FILES) then let HIT = false, NAME = DENT.name in {dcache_get#(P_INO, NAME, DCACHE; HIT, DENT, ERR); if ¬ HIT ∨ ERR ≠ ESUCCESS then {afs_lookup#(P_INO, DIRS, FILES, ASYNCED; DENT, ERR); if ERR = ESUCCESS then dcache_set#(P_INO, NAME, DENT; ERR, DCACHE)}} else abort } |