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.