rename(2) makes changes to our data structures without validation that said system call has exited successfully(something we cannot know before we reach syscall exit).
Generally speaking the whole mechanism feels awkward and I'd rather find a better way to do it. Will look into it.