VOP_GETATTR, VOP_SETATTR — get and set attributes on a file or directory
Contents
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);
