VOP_SETATTR(9freebsd)

VOP_SETATTR9freebsd

Get and set attributes on a file or directory

Part of VOP_ATTRIB(9freebsd).

Usage

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

Overview

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.

Releases

9 releases since Debian 5.0 (Lenny); the text changed 6 times.

  1. 5.0
  2. 6.0
  3. 7
  4. 8
  5. 9
  6. 10
  7. 11–13

Authors

This manual page was written by Doug Rabson.

From freebsd-manpages 12.2-2 in Debian 13 (Trixie). Parsed by carta from the page's mdoc source.