DOKK / manpages / debian 10 / freebsd-manpages / VOP_GETATTR.9freebsd.en
VOP_ATTRIB(9) Kernel Developer's Manual VOP_ATTRIB(9)

VOP_GETATTR, VOP_SETATTRget and set attributes on a file or directory

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

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 () should be set to the value VNOVAL; () may be used to clear all the values, and should generally be used to reset the contents of *vap prior to setting specific values.

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

() expects the vnode to be locked on entry and will leave the vnode locked on return. The lock type must be exclusive.

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.

[]
The file is immutable.
[]
The caller does not have permission to modify the file or directory attributes.
[]
The file system is read-only.

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

This manual page was written by Doug Rabson.

August 29, 2008 Debian