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 directory

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 directory,
     including file permissions, owner, group, size, access time  and  modifica-
     tion 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().	Filesys-
     tems 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 entry
     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 at-
     tribute data *sb, otherwise an appropriate error is returned.

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 ports 15.quarterly	 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_GETATTR&sektion=9&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help