VOP_ATTRIB(9)
πΈ NAME β VOP_ATTRIB(9) πΈ
okay so bestie, this is VOP_ATTRIB(9) from the Kernel Developer's Manual: the page for VOP_GETATTR, VOP_SETATTR β get and set attributes on a file or directory. β¨
β¨ SYNOPSIS β¨
the way this synopsis is giving exact-prototype energy:
#include <sys/param.h>
#include <sys/vnode.h>
int
VOP_GETATTR(struct, vnode, *vp, flags, struct, vattr, *vap, struct,
ucred, *cred);
int
VOP_SETATTR(struct, vnode, *vp, struct, vattr, *vap, struct, ucred,
*cred);
int
VOP_STAT(struct, vnode, *vp, struct, stat, *sb, flags, struct, ucred,
*active_cred, struct, ucred, *file_cred);
π DESCRIPTION π
okay so these entry points manipulate various attributes of a file or directory, including file permissions, owner, group, size, access time and modification time. periodt.
VOP_STAT() returns data in a format suitable for the stat(2) system call and by default is implemented as a wrapper around VOP_GETATTR(). Filesystems may want to implement their own variant for performance reasons. π¦
For VOP_GETATTR() and VOP_SETATTR() the arguments are:
vpβ The vnode of the file.vapβ The attributes of the file.credβ The user credentials of the calling thread.
For VOP_STAT() the arguments are:
vpβ The vnode of the file.sbβ The attributes of the file.active_credβ The user credentials of the calling thread.file_credβ The credentials installed on the file description pointing to the vnode orNOCRED.
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. iykyk.
π LOCKS π
lock vibe check, no cap:
- Both
VOP_GETATTR()andVOP_STAT()expect 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()returns0if 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.VOP_STAT()returns0if it was able to retrieve the attribute data*sb, 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 π
π«Ά AUTHORS π«Ά
This manual page was written by Doug Rabson. π
π footer vibe: source/version + date, bestie β Debian, October 2, 2021. bye! π«Ά
π¦ where this page comes from
- freebsd 14.5: base 14.5
- freebsd 15.1: base 15.1
- Copyright (c) 1996 Doug Rabson
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms