| err = err0, afs-cons(dirs, files), ispath(p0, ROOT_INO, ino0, dirs, files), of-cons(of, dirs, files), px-parent(user, p0, ROOT_INO, dirs, files), ⌊err0⌋ , ino0 ∈ dirs ∨ ino0 ∈ files ⊦ ⟪if err = ESUCCESS then if ¬ inode.directory then err := (inode.directory ⊃ EISDIR;ENOTDIR) else if ¬ pr(user, inode.meta) then err := EACCESS; if err = ESUCCESS then afs_readdir#(inode, dirs, files, asynced; strings, err)⟫ true |
err = err0, afs-cons(dirs, files), ispath(p0, ROOT_INO, ino0, dirs, files), of-cons(of, dirs, files), px-parent(user, p0, ROOT_INO, dirs, files), ⌊err0⌋ , ino0 ∈ dirs ∨ ino0 ∈ files ⊦ ⟪skip; if err = ESUCCESS then afs_readdir#(inode, dirs, files, asynced; strings, err)⟫ true
Used simplifier rules: ⊦ ⌊err⌋ → err ≠ ESUCCESS; (s)