| gjournal_remove_nonend_blocks#(LNUM, PRI, PFI, PINVAL, PSTORE, PSTORE0, PNL, PMAXINO, P_OS, ISYNCED; LOG; ERR) {let GNDLIST = [], DONE = false in {index_read_gblock_nodes#(LNUM, PRI, PFI, PINVAL, PSTORE, PSTORE0, PNL, PMAXINO, P_OS, ISYNCED; LOG, GNDLIST; ERR); if ERR = ESUCCESS then while ¬ DONE ∧ GNDLIST ≠ [] do {/* (term-remove-nonend-blocks: invariant # GNDLIST ≤ # LOG ∧ inv(PSTORE) wfbound (DONE ⊃ 0;# GNDLIST)) */; if GNDLIST.last.end then DONE := true else {LOG := LOG.butlast; GNDLIST := GNDLIST.butlast}}} } |