logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

VOP_GETATTR, VOP_SETATTR — get and set attributes on a file or directory

Authors

       This manual page was written by Doug Rabson.

Debian                                           August 29, 2008                                   VOP_ATTRIB(9)

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.

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.

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.

Name

       VOP_GETATTR, VOP_SETATTR — get and set attributes on a file or directory

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.

See Also

VFS(9), vnode(9), VOP_ACCESS(9)

Synopsis

#include<sys/param.h>#include<sys/vnode.h>intVOP_GETATTR(structvnode*vp, structvattr*vap, structucred*cred);

       intVOP_SETATTR(structvnode*vp, structvattr*vap, structucred*cred);

See Also