| afs-cons(dirs, files) ⊦ [if pre-truncate(mkinode(ino, md, false, m, n0, n), n, n / VFS_PAGE_SIZE, none, dirs, files) then let old_ino0 = 0, old_ino = 0 in {inode := mkinode(ino, md, false, m, n0, 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)} else abort] (err = ESUCCESS → files[ino].content.stream from n = σ⊥) |
afs-cons(dirs, files), pre-truncate(mkinode(ino, md, false, m, n0, n), n, n / VFS_PAGE_SIZE, none, dirs, files) ⊦ [let old_ino0 = 0, old_ino = 0 in {inode := mkinode(ino, md, false, m, n0, 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 = σ⊥), VFS_PAGE_SIZE = 0
afs-cons(dirs, files) ⊦ [abort] (err = ESUCCESS → files[ino].content.stream from n = σ⊥), VFS_PAGE_SIZE = 0, pre-truncate(mkinode(ino, md, false, m, n0, n), n, n / VFS_PAGE_SIZE, none, dirs, files)