HomeFreeBSD

vfs: add realpathat syscall

Description

vfs: add realpathat syscall

realpath(3) is used a lot e.g., by clang and is a major source of getcwd
and fstatat calls. This can be done more efficiently in the kernel.

This works by performing a regular lookup while saving the name and found
parent directory. If the terminal vnode is a directory we can resolve it using
usual means. Otherwise we can use the name saved by lookup and resolve the
parent.

See the review for sample syscall counts.

Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D23574

Details

Provenance
mjgAuthored on
Reviewer
kib
Differential Revision
D23574: vfs: add kernel-side realpathat
Parents
rS358171: Use OLD_LIBS instead of OLD_FILES so the user get a chance to keep them around…
Branches
Unknown
Tags
Unknown