| # links(m2, cache_dirs) = cache_dirs[m2].nlink, asynced1 ↔ true, entries[str0] = cache_dirs[m2].entries[str0], ((cache_files ⊕ cache_pcache) ⊕ cache_icache)[entries[str0]] = mkfile(m8, md4, # links(entries[str0], cache_dirs), content0), cache_files[entries[str0]] = mkfile(m1, md, # links(entries[str0], cache_dirs), content), cache_dirs[m2] = mkdir(cache_dirs[m2].size, md3, cache_dirs[m2].nlink, cache_dirs[m2].nsubdirs, entries), new_ino = m2, old_ino = new_ino, old_ino = m2, afs-cons (cache_dirs[m2, mkdir(cache_dirs[m2].size, md5, cache_dirs[m2].nlink, cache_dirs[m2].nsubdirs, entries)], cache_files[entries[str0], mkfile(m, md0, # links(entries[str0], cache_dirs), content)]), afs-cons(cache_dirs, cache_files), afs-cons(cache_dirs, (cache_files ⊕ cache_pcache) ⊕ cache_icache), dcache-cons(cache_dcache, cache_dirs, cache_files), dcache-cons (cache_dcache[dentrykey(m2, str0), mkdentry(str0, entries[str0])], cache_dirs[m2, mkdir(cache_dirs[m2].size, md5, cache_dirs[m2].nlink, cache_dirs[m2].nsubdirs, entries)], cache_files[entries[str0], mkfile(m, md0, # links(entries[str0], cache_dirs), content)]), icache-cons(cache_icache, cache_dirs, cache_files), icache-cons (cache_icache[m2, mkientry(false, mkinode(m2, md5, true, cache_dirs[m2].nlink, cache_dirs[m2].nsubdirs, cache_dirs[m2].size))] [entries[str0], mkientry(false, mkinode(entries[str0], md0, false, # links(entries[str0], cache_dirs), 0, m)) ], cache_dirs[m2, mkdir(cache_dirs[m2].size, md5, cache_dirs[m2].nlink, cache_dirs[m2].nsubdirs, entries)], cache_files[entries[str0], mkfile(m, md0, # links(entries[str0], cache_dirs), content)]), pcache-cons(cache_pcache, cache_dirs, cache_files), pcache-cons (cache_pcache, cache_dirs[m2, mkdir(cache_dirs[m2].size, md5, cache_dirs[m2].nlink, cache_dirs[m2].nsubdirs, entries)], cache_files[entries[str0], mkfile(m, md0, # links(entries[str0], cache_dirs), content)]), synced(cache_dirs, cache_icache, cache_pcache), synced (cache_dirs[m2, mkdir(cache_dirs[m2].size, md5, cache_dirs[m2].nlink, cache_dirs[m2].nsubdirs, entries)], cache_icache[m2, mkientry(false, mkinode(m2, md5, true, cache_dirs[m2].nlink, cache_dirs[m2].nsubdirs, cache_dirs[m2].size))] [entries[str0], mkientry(false, mkinode(entries[str0], md0, false, # links(entries[str0], cache_dirs), 0, m)) ], cache_pcache), str0 ∈ cache_dirs[m2].entries, str0 ∈ entries, entries[str0] ∈ cache_files, m2 ∈ cache_dirs, cache_sync → synced (cache_files[entries[str0], mkfile(m, md0, # links(entries[str0], cache_dirs), content)], cache_icache[m2, mkientry(false, mkinode(m2, md5, true, cache_dirs[m2].nlink, cache_dirs[m2].nsubdirs, cache_dirs[m2].size))] [entries[str0], mkientry(false, mkinode(entries[str0], md0, false, # links(entries[str0], cache_dirs), 0, m)) ], cache_pcache), cache_sync → synced(cache_files, cache_icache, cache_pcache), links(m2, cache_dirs) ≠ ∅ ∨ m2 = ROOT_INO ⊦ entries[str0] ∈ cache_dirs, str0 ∈ entries ∧ str0 ∈ entries |