vop_getextattr(9)
NAME
- VOP_GETEXTATTR - retrieve named extended attribute from a
- vnode
SYNOPSIS
#include <sys/param.h> #include <sys/vnode.h> #include <sys/extattr.h> int VOP_GETEXTATTR(struct vnode *vp, int attrnamespace, const char *name, struct uio *uio, size_t *size, struct ucred *cred, struct thread *td);
DESCRIPTION
- This vnode call may be used to retrieve a specific named ex
- tended
attribute from a file or directory. - Its arguments are:
- vp The vnode of the file or directory.
- attrnamespace Integer constant indicating which extend
- ed attribute
- namespace the attribute name is present
- in.
- name Pointer to a null-terminated character
- string contain
- ing the attribute name.
- uio The location of the data to be read.
- size If not NULL, on return it will contain
- the number of
- bytes required to read all of the at
- tribute data. In
most cases uio will be NULL when size is - not, and vise
versa. - cred The user credentials to use in authoriz
- ing the
- request.
- td The thread requesting the extended at
- tribute.
- The cred pointer may be NULL to indicate that access control
- checks are
not to be performed, if possible. This cred setting might - be used to
allow the kernel to authorize extended attribute retrieval - that the
active process might not be permitted to do. - Extended attribute semantics may vary by file system imple
- menting the
call. More information on extended attributes may be found - in
extattr(9).
LOCKS
- The vnode will be locked on entry and should remain locked
- on return.
RETURN VALUES
- On success, zero will be returned, and the uio structure
- will be updated
to reflect data read. Otherwise, an appropriate error code - is returned.
ERRORS
- [ENOATTR] The requested attribute was not defined
- for this
- vnode.
- [EACCES] The the caller does not have the appro
- priate privi
- lege.
- [ENXIO] The request was not valid in this file
- system for the
- specified vnode and attribute name.
- [ENOMEM] Sufficient memory is not available to
- fulfill the
- request.
- [EFAULT] The uio structure refers to an invalid
- userspace
- address.
- [EINVAL] The name, namespace, or uio argument is
- invalid.
- [EOPNOTSUPP] The file system does not support
VOP_GETEXTATTR
SEE ALSO
extattr(9), vnode(9), VOP_LISTEXTATTR(9), VOP_SETEXTATTR(9)
BUGS
- By passing in the empty string as the attribute name, some
- file systems
will return a list of defined names on the target vnode for - the requested
namespace. This is a bad API, and will be replaced by an - explicit VOP.
- BSD December 23, 1999