| old_ino = 0, old_ino0 = 0, afs-cons(dirs, files), ino ∈ files ⊦ [inode := mkinode(ino, md, false, files[ino].nlink, 0, n); buf-opt := none; afs_truncate_internal#(n, inode.size / VFS_PAGE_SIZE; inode, buf-opt, old_ino0, old_ino, asynced0, err, dirs, files; asynced)] (err = ESUCCESS → files[ino].content.stream from n = σ⊥) |
files[ino] = mkfile(m, md0, m0, content), old_ino = 0, old_ino0 = 0, afs-cons(dirs, files), ino ∈ files ⊦ [inode := mkinode(ino, md, false, m0, 0, n); buf-opt := none; afs_truncate_internal#(n, inode.size / VFS_PAGE_SIZE; inode, buf-opt, old_ino0, old_ino, asynced0, err, dirs, files; asynced)] (err = ESUCCESS → files[ino].content.stream from n = σ⊥)
Used simplifier rules: ⊦ ((m = af.size ∧ md = af.meta) ∧ m0 = af.nlink) ∧ content = af.content ↔ af = mkfile(m, md, m0, content); (elim) Used terms: files[ino], m, md, m0, content