| ((files ⊕ pcache) ⊕ icache)[ino] = mkfile(m0, md, m1, content), ino ∈ files, ino ∈ icache ⊦ mkfile(m0, md, m1, content[m, buf]) = ((files ⊕ pcache[datakey(ino, m), mkpentry(true, buf)]) ⊕ icache)[ino] |
⊦ ino ∈ icache ∧ ¬ icache[ino].inode.directory → (files ⊕ icache)[ino] = mkfile(icache[ino].inode.size, icache[ino].inode.meta, icache[ino].inode.nlink, files[ino].content)
((files ⊕ pcache) ⊕ icache)[ino] = mkfile(m0, md, m1, content), ino ∈ icache, ino ∈ files ⊦ mkfile(m0, md, m1, content[m, buf]) = ((files ⊕ pcache[datakey(ino, m), mkpentry(true, buf)]) ⊕ icache)[ino], ino ∈ icache ∧ ¬ icache[ino].inode.directory
((files ⊕ pcache) ⊕ icache)[ino] = mkfile(m0, md, m1, content), ino ∈ files, ino ∈ icache ⊦ mkfile(m0, md, m1, content[m, buf]) = mkfile (icache[ino].inode.size, icache[ino].inode.meta, icache[ino].inode.nlink, (files ⊕ pcache[datakey(ino, m), mkpentry(true, buf)])[ino].content), icache[ino].inode.directory
Used terms: ino, icache, files ⊕ pcache[datakey(ino, m), mkpentry(true, buf)]