| afs-cons(dirs, files), of-cons(of, dirs, files) ⊦ ⟪if p = ε then err := EEXISTS else let ino = ROOT_INO, dent = negdentry(p.last), p = parent(p), inode = ?, c_inode = ? in {vfs_walk#(p, user, dirs, files, asynced; ino, err); if err = ESUCCESS then vfs_may_create#(ino, dent, user, dirs, files, asynced; inode, err); if err = ESUCCESS then afs_check_commit#(dirs, files; err; asynced); if err = ESUCCESS then afs_mkdir#(md; inode, c_inode, dent, err, dirs, files; asynced)}⟫ (of-cons(of, dirs, files) ∧ afs-cons(dirs, files)) |
p = ε, afs-cons(dirs, files), of-cons(of, dirs, files) ⊦ ⟪err := EEXISTS⟫ (of-cons(of, dirs, files) ∧ afs-cons(dirs, files))
afs-cons(dirs, files), of-cons(of, dirs, files) ⊦ ⟪let ino = ROOT_INO, dent = negdentry(p.last), p = parent(p), inode = ?, c_inode = ? in {vfs_walk#(p, user, dirs, files, asynced; ino, err); if err = ESUCCESS then vfs_may_create#(ino, dent, user, dirs, files, asynced; inode, err); if err = ESUCCESS then afs_check_commit#(dirs, files; err; asynced); if err = ESUCCESS then afs_mkdir#(md; inode, c_inode, dent, err, dirs, files; asynced)}⟫ (of-cons(of, dirs, files) ∧ afs-cons(dirs, files)), p = ε