| buf = copy(buf0, ino0, buf2, ino, n), err = err0, err0 = ESUCCESS, afs-cons(dirs, files), pre-writepage(inode, pageno, buf, dirs, files), ino + n ≤ # buf2, ino0 + n ≤ # buf0 ⊦ [{files[inode.ino].content[pageno] := buf; err := ESUCCESS} or fail#(; ; err); asynced := ?] afs-cons(dirs, files) |
buf = copy(buf0, ino0, buf2, ino, n), err = err0, err0 = ESUCCESS, afs-cons(dirs, files), pre-writepage(inode, pageno, buf, dirs, files), ino0 + n ≤ # buf0, ino + n ≤ # buf2 ⊦ [files[inode.ino].content[pageno] := buf; err := ESUCCESS; asynced := ?] afs-cons(dirs, files)
buf = copy(buf0, ino0, buf2, ino, n), err = err0, err0 = ESUCCESS, afs-cons(dirs, files), pre-writepage(inode, pageno, buf, dirs, files), ino0 + n ≤ # buf0, ino + n ≤ # buf2 ⊦ [fail#(; ; err); asynced := ?] afs-cons(dirs, files)