| boolvar ↔ boolvar0, fs[adr] = inodenode(inodekey(ino), md, false, 0, m0, m1), key = fs[adr].key, nd = fs[adr], ri = ri0 -- key, ri0 = ri1 \ datakeys(inodekey(ino), ri1), adr ∈ fs ⊦ ⟪skip; boolvar := boolvar0; err := ESUCCESS; if nd.data? then {let key = inodekey(nd.key.ino) in aubifs_core_index_contains#(key, ri, fi, ro, fo, fs, log, boolvar0; boolvar; err); if err = ESUCCESS ∧ boolvar then aubifs_core_index_store#(nd.key, adr, fi, ro, fo, fs, log, boolvar0; ri)}; if nd.trunc? then aubifs_core_index_truncate#(nd.key, nd.size, fi, ro, fo, fs, log, boolvar0; ri)⟫ ((err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → ri = replay-one(adr, fs[adr], ri1))), ino = ROOT_INO, ino = 0, adr ∈ ri1 |
boolvar ↔ boolvar0, fs[adr] = inodenode(inodekey(ino), md, false, 0, m0, m1), key = fs[adr].key, nd = fs[adr], ri = ri0 -- key, ri0 = ri1 \ datakeys(inodekey(ino), ri1), adr ∈ fs ⊦ ⟪boolvar := boolvar0; err := ESUCCESS; if nd.data? then {let key = inodekey(nd.key.ino) in aubifs_core_index_contains#(key, ri, fi, ro, fo, fs, log, boolvar0; boolvar; err); if err = ESUCCESS ∧ boolvar then aubifs_core_index_store#(nd.key, adr, fi, ro, fo, fs, log, boolvar0; ri)}; if nd.trunc? then aubifs_core_index_truncate#(nd.key, nd.size, fi, ro, fo, fs, log, boolvar0; ri)⟫ ((err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → ri = replay-one(adr, fs[adr], ri1))), ino = 0, ino = ROOT_INO, adr ∈ ri1