focal (9) VOP_ATTRIB.9freebsd.gz

Provided by: freebsd-manpages_12.0-1_all bug

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);

DESCRIPTION

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

     The arguments are:

     vp    The vnode of the file.

     vap   The attributes of the file.

     cred  The user credentials of the calling process.

     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

     VOP_GETATTR() expects 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.

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.