Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
VN_FULLPATH(9)		   Kernel Developer's Manual		VN_FULLPATH(9)

NAME
       vn_fullpath  --	convert	 a vnode reference to a	full pathname, given a
       process context

SYNOPSIS
       #include	<sys/param.h>
       #include	<sys/vnode.h>

       int
       vn_fullpath(struct vnode	*vp, char **retbuf, char **freebuf);

DESCRIPTION
       The vn_fullpath() function makes	a "best	effort"	attempt	to generate  a
       string  pathname	for the	passed vnode; the resulting path, if any, will
       be relative to the root directory of the	process	 associated  with  the
       passed  thread  pointer.	  The vn_fullpath() function is	implemented by
       inspecting the VFS name cache, and attempting  to  reconstruct  a  path
       from the	process	root to	the object.

       This  process is	necessarily unreliable for several reasons: intermedi-
       ate entries in the path may not be found	in the cache; files  may  have
       more  than  one	name  (hard  links), not all file systems use the name
       cache (specifically, most synthetic file	systems	do not); a single name
       may be used for more than one file (in the context of file systems cov-
       ering other file	systems); a file may have  no  name  (if  deleted  but
       still  open or referenced).  However, the resulting string may still be
       more useable to a user than a vnode pointer value, or a	device	number
       and  inode  number.  Code consuming the results of this function	should
       anticipate (and properly	handle)	failure.

       Its arguments are:

       vp	The vnode to search for.  No need to be	locked by the caller.

       retbuf	Pointer	to a char * that vn_fullpath() may (on success)	 point
		at a newly allocated buffer containing the resulting pathname.

       freebuf	Pointer	 to a char * that vn_fullpath()	may (on	success) point
		at a buffer to be freed, when the caller is done with retbuf.

       Typical consumers will declare two  character  pointers:	 fullpath  and
       freepath; they will set freepath	to NULL, and fullpath to a name	to use
       in the event that the call to vn_fullpath() fails.  After done with the
       value  of  fullpath, the	caller will check if freepath is non-NULL, and
       if so, invoke free(9) with a pool type of M_TEMP.

RETURN VALUES
       If the vnode is successfully converted to a pathname,  0	 is  returned;
       otherwise, an error number is returned.

SEE ALSO
       free(9)

AUTHORS
       This manual page	was written by Robert Watson <rwatson@FreeBSD.org>.

FreeBSD	14.3			 June 15, 2021			VN_FULLPATH(9)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=vn_fullpath&sektion=9&manpath=FreeBSD+14.3-RELEASE+and+Ports>

home | help