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.