| aubifs_rename#(FI, FO; OLD_PARENT_INODE, NEW_PARENT_INODE, OLD_CHILD_INODE, NEW_CHILD_INODE, OLD_DENT, NEW_DENT, ERR, RI, RO, FS, LOG, CSYNCED) {if pre-rename(OLD_PARENT_INODE, OLD_DENT, OLD_CHILD_INODE, NEW_PARENT_INODE, NEW_DENT, NEW_CHILD_INODE, FS, RI, RO) then let OVERWRITE = NEW_DENT.dentry?, REPARENT = OLD_PARENT_INODE.ino ≠ NEW_PARENT_INODE.ino, IS_DIR = OLD_CHILD_INODE.directory in if REPARENT then if OVERWRITE then aubifs_rename_overwrite_reparent# (IS_DIR, OLD_CHILD_INODE, FI, FO ; OLD_PARENT_INODE, NEW_PARENT_INODE, NEW_CHILD_INODE, OLD_DENT, NEW_DENT, ERR, RI, RO, FS, LOG, CSYNCED) else aubifs_rename_new_reparent# (IS_DIR, OLD_CHILD_INODE, FI, RO, FO; OLD_PARENT_INODE, NEW_PARENT_INODE, OLD_DENT, NEW_DENT, ERR, RI, FS, LOG, CSYNCED) else {if OVERWRITE then aubifs_rename_overwrite_keep_parent# (IS_DIR, OLD_CHILD_INODE, FI, FO; OLD_PARENT_INODE, NEW_CHILD_INODE, OLD_DENT, NEW_DENT, ERR, RI, RO, FS, LOG, CSYNCED) else aubifs_rename_new_keep_parent# (IS_DIR, OLD_CHILD_INODE, FI, RO, FO; OLD_PARENT_INODE, OLD_DENT, NEW_DENT, ERR, RI, FS, LOG, CSYNCED); NEW_PARENT_INODE := OLD_PARENT_INODE} else abort } |