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

FreeBSD Manual Pages

  
 
  

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

NAME
       VOP_GETATTR,  VOP_SETATTR -- get	and set	attributes on a	file or	direc-
       tory

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

       int
       VOP_GETATTR(struct, vnode, *vp, flags,  struct,	vattr,	*vap,  struct,
	   ucred, *cred);

       int
       VOP_SETATTR(struct,  vnode,  *vp,  struct,  vattr, *vap,	struct,	ucred,
	   *cred);

       int
       VOP_STAT(struct,	vnode, *vp, struct, stat, *sb, flags,  struct,	ucred,
	   *active_cred, struct, ucred,	*file_cred);

DESCRIPTION
       These  entry  points  manipulate	various	attributes of a	file or	direc-
       tory, including file permissions, owner,	group, size, access  time  and
       modification time.

       VOP_STAT()  returns  data  in  a	format suitable	for the	stat(2)	system
       call and	by default is implemented as a wrapper	around	VOP_GETATTR().
       Filesystems  may	 want  to  implement their own variant for performance
       reasons.

       For VOP_GETATTR() and VOP_SETATTR() the arguments are:

       vp    The vnode of the file.

       vap   The attributes of the file.

       cred  The user credentials of the calling thread.

       For VOP_STAT() the arguments are:

       vp	    The	vnode of the file.

       sb	    The	attributes of the file.

       active_cred  The	user credentials of the	calling	thread.

       file_cred    The	credentials installed on the file description pointing
		    to the vnode or NOCRED.

       Attributes which	are not	being modified by VOP_SETATTR()	should be  set
       to  the value VNOVAL; VATTR_NULL() may be used to clear all the values,
       and should generally be used to reset the contents  of  *vap  prior  to
       setting specific	values.

LOCKS
       Both  VOP_GETATTR() and VOP_STAT() expect the vnode to be locked	on en-
       try and will leave the vnode locked on return.  The lock	 type  can  be
       either shared or	exclusive.

       VOP_SETATTR()  expects  the  vnode to be	locked on entry	and will leave
       the vnode locked	on return.  The	lock type must be exclusive.

RETURN VALUES
       VOP_GETATTR() returns 0 if it was able to retrieve the  attribute  data
       via  *vap,  otherwise  an appropriate error is returned.	 VOP_SETATTR()
       returns zero if the attributes were changed successfully, otherwise  an
       appropriate  error is returned.	VOP_STAT() returns 0 if	it was able to
       retrieve	the attribute data *sb,	otherwise an appropriate error is  re-
       turned.

ERRORS
       [EPERM]		  The file is immutable.

       [EACCES]		  The  caller  does  not have permission to modify the
			  file or directory attributes.

       [EROFS]		  The file system is read-only.

SEE ALSO
       VFS(9), vnode(9), VOP_ACCESS(9)

AUTHORS
       This manual page	was written by Doug Rabson.

FreeBSD	14.3			October	2, 2021			 VOP_ATTRIB(9)

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

home | help