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

FreeBSD Manual Pages

  
 
  

home | help
VOP_ATTRIB(9)	       FreeBSD 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, 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, struct	ucred *active_cred,
	 struct	ucred *file_cred, struct thread	*td);

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().
     Filesystems may want to implement their own variant for performance rea-
     sons.

     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.

     td		  The calling thread.

     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 appropri-
     ate error is returned.  VOP_STAT()	returns	0 if it	was able to retrieve
     the attribute 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	13.0			August 8, 2020			  FreeBSD 13.0

NAME | SYNOPSIS | DESCRIPTION | LOCKS | RETURN VALUES | ERRORS | SEE ALSO | AUTHORS

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

home | help