| posix_rename#(PATH, PATH', USER, OFH; ERR, ROOT, FS; PSYNCED) {choose E with pre-renam(PATH, PATH', E, USER, ROOT, FS, OFH) in ERR := E; if ERR = ESUCCESS then let DIR = ROOT[PATH], EXISTS = PATH' ∈ ROOT, TREE = ROOT[PATH'] in {ROOT := (ROOT -- PATH)[PATH', DIR]; if EXISTS ∧ ¬ TREE.dir? ∧ ¬ TREE.fid ∈ OFH.fids ∧ ¬ TREE.fid ∈ ROOT.fids then FS := FS -- TREE.fid}; PSYNCED := ? } |