I assume that the result of the rename operation must be known. I.e. if it was successful or not, or which files were affected. That implies 2 function calls. One to start the operation, and one to query its result. That is, by definition, already an asynchronous interface.
The only other (i.e. synchonous) way to achieve remote procedure calls is by blocking until it's finished.