As far as I can say ni_startdir is of no significance for rename. The target buf is used, but that one is covered with SAVENAME.
ufs rename asserts that SAVESTART is passed, but the assert dates back to the original BSD source import and I don't see it to be of any use here. msdosfs had the same assert copy-pasted.
The goal is to eradicate the SAVESTART flag.
This is 2 commits squashed into one review:
commit f32b40a60e76332951e6dabc9977bd7a76e06d48 (HEAD -> kekeacz) Author: Mateusz Guzik <mjg@FreeBSD.org> Date: Mon Mar 7 13:50:45 2022 +0100 vfs: stop using SAVESTART for rename ni_startdir has never reached rename routines anyway. Do pass SAVENAME instead as the name is used for relookup (if needed). commit 4b965c66044dfb3a3849db5e5fd5397408c9e244 Author: Mateusz Guzik <mjg@FreeBSD.org> Date: Mon Mar 7 16:34:52 2022 +0100 vfs: make relookup take an additional argument instead of looking at SAVESTART This is a step towards removing the flag.