FreeBSD kernel kern code
vfs_acl.c File Reference
#include <sys/cdefs.h>
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/sysproto.h>
#include <sys/capability.h>
#include <sys/fcntl.h>
#include <sys/kernel.h>
#include <sys/malloc.h>
#include <sys/mount.h>
#include <sys/vnode.h>
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/namei.h>
#include <sys/file.h>
#include <sys/filedesc.h>
#include <sys/proc.h>
#include <sys/sysent.h>
#include <sys/acl.h>
#include <security/mac/mac_framework.h>
Include dependency graph for vfs_acl.c:

Go to the source code of this file.

Functions

 __FBSDID ("$BSDSUniX$")
 
 CTASSERT (ACL_MAX_ENTRIES >=OLDACL_MAX_ENTRIES)
 
 MALLOC_DEFINE (M_ACL,"acl","Access Control Lists")
 
static int vacl_set_acl (struct thread *td, struct vnode *vp, acl_type_t type, struct acl *aclp)
 
static int vacl_get_acl (struct thread *td, struct vnode *vp, acl_type_t type, struct acl *aclp)
 
static int vacl_aclcheck (struct thread *td, struct vnode *vp, acl_type_t type, struct acl *aclp)
 
int acl_copy_oldacl_into_acl (const struct oldacl *source, struct acl *dest)
 
int acl_copy_acl_into_oldacl (const struct acl *source, struct oldacl *dest)
 
static int acl_copyin (void *user_acl, struct acl *kernel_acl, acl_type_t type)
 
static int acl_copyout (struct acl *kernel_acl, void *user_acl, acl_type_t type)
 
static int acl_type_unold (int type)
 
static int vacl_delete (struct thread *td, struct vnode *vp, acl_type_t type)
 
int sys___acl_get_file (struct thread *td, struct __acl_get_file_args *uap)
 
int sys___acl_get_link (struct thread *td, struct __acl_get_link_args *uap)
 
int sys___acl_set_file (struct thread *td, struct __acl_set_file_args *uap)
 
int sys___acl_set_link (struct thread *td, struct __acl_set_link_args *uap)
 
int sys___acl_get_fd (struct thread *td, struct __acl_get_fd_args *uap)
 
int sys___acl_set_fd (struct thread *td, struct __acl_set_fd_args *uap)
 
int sys___acl_delete_file (struct thread *td, struct __acl_delete_file_args *uap)
 
int sys___acl_delete_link (struct thread *td, struct __acl_delete_link_args *uap)
 
int sys___acl_delete_fd (struct thread *td, struct __acl_delete_fd_args *uap)
 
int sys___acl_aclcheck_file (struct thread *td, struct __acl_aclcheck_file_args *uap)
 
int sys___acl_aclcheck_link (struct thread *td, struct __acl_aclcheck_link_args *uap)
 
int sys___acl_aclcheck_fd (struct thread *td, struct __acl_aclcheck_fd_args *uap)
 
struct acl * acl_alloc (int flags)
 
void acl_free (struct acl *aclp)
 

Function Documentation

__FBSDID ( "$BSDSUniX$"  )
struct acl* acl_alloc ( int  flags)

Definition at line 562 of file vfs_acl.c.

References malloc().

Referenced by acl_nfs4_is_trivial(), vacl_aclcheck(), vacl_get_acl(), and vacl_set_acl().

Here is the call graph for this function:

Here is the caller graph for this function:

int acl_copy_acl_into_oldacl ( const struct acl *  source,
struct oldacl *  dest 
)

Definition at line 92 of file vfs_acl.c.

Referenced by acl_copyout().

Here is the caller graph for this function:

int acl_copy_oldacl_into_acl ( const struct oldacl *  source,
struct acl *  dest 
)

Definition at line 70 of file vfs_acl.c.

Referenced by acl_copyin().

Here is the caller graph for this function:

static int acl_copyin ( void *  user_acl,
struct acl *  kernel_acl,
acl_type_t  type 
)
static

Definition at line 125 of file vfs_acl.c.

References acl_copy_oldacl_into_acl().

Referenced by vacl_aclcheck(), and vacl_set_acl().

Here is the call graph for this function:

Here is the caller graph for this function:

static int acl_copyout ( struct acl *  kernel_acl,
void *  user_acl,
acl_type_t  type 
)
static

Definition at line 149 of file vfs_acl.c.

References acl_copy_acl_into_oldacl().

Referenced by vacl_get_acl().

Here is the call graph for this function:

Here is the caller graph for this function:

void acl_free ( struct acl *  aclp)

Definition at line 576 of file vfs_acl.c.

References free().

Referenced by acl_nfs4_is_trivial(), vacl_aclcheck(), vacl_get_acl(), and vacl_set_acl().

Here is the call graph for this function:

Here is the caller graph for this function:

static int acl_type_unold ( int  type)
static

Definition at line 182 of file vfs_acl.c.

Referenced by vacl_aclcheck(), vacl_delete(), vacl_get_acl(), and vacl_set_acl().

Here is the caller graph for this function:

CTASSERT ( ACL_MAX_ENTRIES >=  OLDACL_MAX_ENTRIES)
MALLOC_DEFINE ( M_ACL  ,
"acl"  ,
"Access Control Lists"   
)
int sys___acl_aclcheck_fd ( struct thread *  td,
struct __acl_aclcheck_fd_args *  uap 
)

Definition at line 545 of file vfs_acl.c.

References getvnode(), and vacl_aclcheck().

Here is the call graph for this function:

int sys___acl_aclcheck_file ( struct thread *  td,
struct __acl_aclcheck_file_args *  uap 
)

Definition at line 505 of file vfs_acl.c.

References namei(), NDFREE(), and vacl_aclcheck().

Here is the call graph for this function:

int sys___acl_aclcheck_link ( struct thread *  td,
struct __acl_aclcheck_link_args *  uap 
)

Definition at line 525 of file vfs_acl.c.

References namei(), NDFREE(), and vacl_aclcheck().

Here is the call graph for this function:

int sys___acl_delete_fd ( struct thread *  td,
struct __acl_delete_fd_args *  uap 
)

Definition at line 485 of file vfs_acl.c.

References getvnode(), and vacl_delete().

Here is the call graph for this function:

int sys___acl_delete_file ( struct thread *  td,
struct __acl_delete_file_args *  uap 
)

Definition at line 445 of file vfs_acl.c.

References namei(), NDFREE(), and vacl_delete().

Here is the call graph for this function:

int sys___acl_delete_link ( struct thread *  td,
struct __acl_delete_link_args *  uap 
)

Definition at line 465 of file vfs_acl.c.

References namei(), NDFREE(), and vacl_delete().

Here is the call graph for this function:

int sys___acl_get_fd ( struct thread *  td,
struct __acl_get_fd_args *  uap 
)

Definition at line 407 of file vfs_acl.c.

References getvnode(), and vacl_get_acl().

Here is the call graph for this function:

int sys___acl_get_file ( struct thread *  td,
struct __acl_get_file_args *  uap 
)

Definition at line 327 of file vfs_acl.c.

References namei(), NDFREE(), and vacl_get_acl().

Here is the call graph for this function:

int sys___acl_get_link ( struct thread *  td,
struct __acl_get_link_args *  uap 
)

Definition at line 347 of file vfs_acl.c.

References namei(), NDFREE(), and vacl_get_acl().

Here is the call graph for this function:

int sys___acl_set_fd ( struct thread *  td,
struct __acl_set_fd_args *  uap 
)

Definition at line 426 of file vfs_acl.c.

References getvnode(), and vacl_set_acl().

Here is the call graph for this function:

int sys___acl_set_file ( struct thread *  td,
struct __acl_set_file_args *  uap 
)

Definition at line 367 of file vfs_acl.c.

References namei(), NDFREE(), and vacl_set_acl().

Here is the call graph for this function:

int sys___acl_set_link ( struct thread *  td,
struct __acl_set_link_args *  uap 
)

Definition at line 387 of file vfs_acl.c.

References namei(), NDFREE(), and vacl_set_acl().

Here is the call graph for this function:

static int vacl_aclcheck ( struct thread *  td,
struct vnode *  vp,
acl_type_t  type,
struct acl *  aclp 
)
static

Definition at line 301 of file vfs_acl.c.

References acl_alloc(), acl_copyin(), acl_free(), and acl_type_unold().

Referenced by sys___acl_aclcheck_fd(), sys___acl_aclcheck_file(), and sys___acl_aclcheck_link().

Here is the call graph for this function:

Here is the caller graph for this function:

static int vacl_delete ( struct thread *  td,
struct vnode *  vp,
acl_type_t  type 
)
static

Definition at line 274 of file vfs_acl.c.

References acl_type_unold(), vn_finished_write(), and vn_start_write().

Referenced by sys___acl_delete_fd(), sys___acl_delete_file(), and sys___acl_delete_link().

Here is the call graph for this function:

Here is the caller graph for this function:

static int vacl_get_acl ( struct thread *  td,
struct vnode *  vp,
acl_type_t  type,
struct acl *  aclp 
)
static

Definition at line 244 of file vfs_acl.c.

References acl_alloc(), acl_copyout(), acl_free(), and acl_type_unold().

Referenced by sys___acl_get_fd(), sys___acl_get_file(), and sys___acl_get_link().

Here is the call graph for this function:

Here is the caller graph for this function:

static int vacl_set_acl ( struct thread *  td,
struct vnode *  vp,
acl_type_t  type,
struct acl *  aclp 
)
static

Definition at line 208 of file vfs_acl.c.

References acl_alloc(), acl_copyin(), acl_free(), acl_type_unold(), vn_finished_write(), and vn_start_write().

Referenced by sys___acl_set_fd(), sys___acl_set_file(), and sys___acl_set_link().

Here is the call graph for this function:

Here is the caller graph for this function: