| btree_commit_rec#(R, ROOTADR, ISTORE0, GINVAL, GSTORE, GSTORE0, NL, MAXINO, OS; ADR, ERR, ZH, ISTORE, PSTATE, PSYNCED) {ERR := ESUCCESS; if ¬ ZH[R].leaf then let N = 0 in while N < ZH[R].usedsize ∧ ERR = ESUCCESS do {let ADRC = ZH[R].zbranches[N].adr, RC = ZH[R].zbranches[N].child in if RC ≠ null ∧ ZH[RC].dirty then {btree_commit_rec#(RC, ROOTADR, ISTORE0, GINVAL, GSTORE, GSTORE0, NL, MAXINO, OS; ADRC, ERR, ZH, ISTORE, PSTATE, PSYNCED); if ERR = ESUCCESS then ZH[R].zbranches[N].adr := ADRC}; N := N + 1}; if ERR = ESUCCESS then btree_io_save#(R, ROOTADR, ISTORE0, GINVAL, GSTORE, GSTORE0, NL, MAXINO, OS; ADR, ZH, ISTORE, PSTATE, PSYNCED; ERR) } |