On Tue, Aug 02, 2011 at 05:45:56PM +0200, Rhialto wrote: > Ok, then we also want openat(2), fchmodat(2) (which seems to be misnamed > and looks more like a chmodat(2)), unlinkat(2), fchownat(2) (same remark > as fchmodat), etc.
And you forgot fexecve(). I agree we want all of them, but I do not think we want everything at once. We have linkat(2) which fixes the problem of hard linking symlinks. This is a small and harmless change. And we have these "*at" functions that allow specifying pathnames relative to a directory specified by a file descriptor. That means modifying the namei interface, not a challenge, but something a bit more intrusive. Therefore I would like to go incremental, by first supproting this: linkat (AT_FDCW, name1, AT_FDCW, name2, 0) linkat (AT_FDCW, name1, AT_FDCW, name2, AT_SYMLINK_FOLLOW) and return ENOSYS if fd1 and fd2 have values other than AT_FDCW. Then do the full Extended API set 2. -- Emmanuel Dreyfus m...@netbsd.org