you don't need to pass in tempRenameAttemptCounter if it's inside the current closure