| (ino ∈ dirs ⊃ mkinode(ino, dirs[ino].meta, true, dirs[ino].nlink, dirs[ino].nsubdirs, dirs[ino].size) ;mkinode(ino, files[ino].meta, false, files[ino].nlink, 0, files[ino].size) ) = mkinode(m, md, boolvar, m0, m1, m2), ¬ boolvar, buf-opt = none, files0 = files, inode = mkinode(ino, files[ino].meta, false, files[ino].nlink, 0, files[ino].size), afs-cons(dirs, files) ⊦ [afs_truncate#(files[ino].size, files[ino].size / VFS_PAGE_SIZE; buf-opt, inode, bv, err, dirs, files, asynced)] (files0 ~ files ∧ (⌊err⌋ ∨ err = ESUCCESS)) |
(ino ∈ dirs ⊃ mkinode(ino, dirs[ino].meta, true, dirs[ino].nlink, dirs[ino].nsubdirs, dirs[ino].size) ;mkinode(ino, files[ino].meta, false, files[ino].nlink, 0, files[ino].size) ) = mkinode(m, md, false, m0, m1, m2), buf-opt = none, files0 = files, inode = mkinode(ino, files[ino].meta, false, files[ino].nlink, 0, files[ino].size), afs-cons(dirs, files) ⊦ [afs_truncate#(files[ino].size, files[ino].size / VFS_PAGE_SIZE; buf-opt, inode, bv, err, dirs, files, asynced)] (files0 ~ files ∧ (⌊err⌋ ∨ err = ESUCCESS))