| inode.nlink = files0[inode.ino].nlink, inode.nsubdirs = 0, files = files0, pcache0 = pcache, afs-cons(dirs, files0), pcache-cons(pcache, dirs, files0), inode.ino ∈ files0, ¬ inode.directory ⊦ [cache_fsync-pages#(inode, dirs; err, files, pcache, asynced)] ( err = ESUCCESS → files[inode.ino].content:= (files[inode.ino].content upto inode.size) = mkfile (files0[inode.ino].size, files0[inode.ino].meta, files0[inode.ino].nlink, (files0[inode.ino].content ⊕ mkcontent(inode.ino, pcache0)) upto inode.size)) |
¬ boolvar, files = files0, inode = mkinode(m, md, boolvar, m0, m1, m2), m0 = files0[m].nlink, m1 = 0, pcache0 = pcache, afs-cons(dirs, files0), pcache-cons(pcache, dirs, files0), m ∈ files0 ⊦ [cache_fsync-pages#(inode, dirs; err, files, pcache, asynced)] ( err = ESUCCESS → files[m].content:= (files[m].content upto m2) = mkfile(files0[m].size, files0[m].meta, files0[m].nlink, (files0[m].content ⊕ mkcontent(m, pcache0)) upto m2))
Used simplifier rules: ⊦ ( ( ( (m = inode.ino ∧ md = inode.meta) ∧ (boolvar ↔ inode.directory)) ∧ m0 = inode.nlink) ∧ m1 = inode.nsubdirs) ∧ m2 = inode.size ↔ inode = mkinode(m, md, boolvar, m0, m1, m2); (elim) Used terms: inode, m, md, boolvar, m0, m1, m2