| gjournal_journal_allocate#(SIZE, PRI, PFI, PSTORE0, PMAXINO, P_OS; JVALID, PINVAL, PSTORE, PNL, ISYNCED; ERR) {let N = ? in {index_get_leb_size(PRI, PFI, PINVAL, PSTORE, PSTORE0, PNL, PMAXINO, P_OS, ISYNCED; ; N); if SIZE > N then ERR := ENOSPC else let N = ?, EMPTY? = ? in {index_is_log_empty#(PRI, PFI, PINVAL, PSTORE, PSTORE0, PNL, PMAXINO, P_OS, ISYNCED; ; EMPTY?); if ¬ EMPTY? ∧ JVALID then index_get_block_free_size#(PRI, PFI, PINVAL, PSTORE, PSTORE0, PNL, PMAXINO, P_OS, ISYNCED; ; N); if ¬ EMPTY? ∧ JVALID ∧ SIZE ≤ N then ERR := ESUCCESS else {index_sync#(PRI, PFI, PINVAL, PSTORE, PSTORE0, PNL, PMAXINO, P_OS; ; ISYNCED, ERR); if ERR = ESUCCESS then index_allocate_gnd#(PRI, PFI, PSTORE0, PMAXINO, P_OS, ISYNCED; PINVAL, PSTORE, PNL; ERR); if ERR = ESUCCESS then JVALID := true}}} } |