netatalk 4.5.0
Free and Open Source Apple Filing Protocol (AFP) Server
Loading...
Searching...
No Matches
vfs.c File Reference
`#include <libgen.h>`
`#include <stdio.h>`
`#include <stdlib.h>`
`#include <string.h>`
`#include <sys/stat.h>`
`#include <sys/types.h>`
`#include <unistd.h>`
`#include <bstrlib.h>`
`#include <atalk/acl.h>`
`#include <atalk/adouble.h>`
`#include <atalk/afp.h>`
`#include <atalk/compat.h>`
`#include <atalk/directory.h>`
`#include <atalk/ea.h>`
`#include <atalk/errchk.h>`
`#include <atalk/logger.h>`
`#include <atalk/unix.h>`
`#include <atalk/util.h>`
`#include <atalk/vfs.h>`
`#include <atalk/volume.h>`

## Data Structures
struct | perm

## Typedefs
typedef int(* | rf_loop) (const struct vol *, struct dirent *, char *, void *, int)

## Functions
static int | for_each_adouble (const char *from, const char *name, rf_loop fn, const struct vol *vol, void *data, int flag)
static int | netatalk_name (const char *name)
static int | validupath_adouble (const struct vol *vol, const char *name)
static int | RF_chown_adouble (const struct vol *vol, const char *path, uid_t uid, gid_t gid)
static int | RF_renamedir_adouble (const struct vol *vol, int dirfd, const char *oldpath, const char *newpath)
static int | deletecurdir_adouble_loop (const struct vol *vol, struct dirent *de, char *name, void *data, int flag)
static int | RF_deletecurdir_adouble (const struct vol *vol)
static int | adouble_setfilmode (const struct vol *vol, const char *name, mode_t mode, struct stat *st)
static int | RF_setfilmode_adouble (const struct vol *vol, const char *name, mode_t mode, struct stat *st)
static int | RF_setdirunixmode_adouble (const struct vol *vol, const char *name, mode_t mode, struct stat *st)
static int | setdirmode_adouble_loop (const struct vol *vol, struct dirent *de, char *name, void *data, int flag)
static int | RF_setdirmode_adouble (const struct vol *vol, const char *name, mode_t mode, struct stat *st)
static int | RF_setdirowner_adouble (const struct vol *vol, const char *name, uid_t uid, gid_t gid)
static int | RF_deletefile_adouble (const struct vol *vol, int dirfd, const char *file)
static int | RF_renamefile_adouble (const struct vol *vol, int dirfd, const char *src, const char *dst)
static int | RF_copyfile_adouble (const struct vol *vol, int sfd, const char *src, const char *dst)
static int | RF_solaris_acl (const struct vol *vol, const char *path, int cmd, int count, void *aces)
static int | RF_solaris_remove_acl (const struct vol *vol, const char *path, int dir)
static int | RF_posix_acl (const struct vol *vol, const char *path, acl_type_t type, int count, acl_t acl)
static int | RF_posix_remove_acl (const struct vol *vol, const char *path, int dir)
static int | validupath_ea (const struct vol *vol, const char *name)
static int | RF_chown_ea (const struct vol *vol, const char *path, uid_t uid, gid_t gid)
static int | RF_renamedir_ea (const struct vol *vol, int dirfd, const char *oldpath, const char *newpath)
static int | deletecurdir_ea_osx_chkifempty_loop (const struct vol *vol, struct dirent *de, char *name, void *data, int flag)
static int | deletecurdir_ea_osx_loop (const struct vol *vol, struct dirent *de, char *name, void *data, int flag)
static int | RF_deletecurdir_ea (const struct vol *vol)
static int | RF_setdirunixmode_ea (const struct vol *vol, const char *name, mode_t mode, struct stat *st)
static int | RF_setfilmode_ea (const struct vol *vol, const char *name, mode_t mode, struct stat *st)
static int | RF_setdirmode_ea (const struct vol *vol, const char *name, mode_t mode, struct stat *st)
static int | RF_setdirowner_ea (const struct vol *vol, const char *name, uid_t uid, gid_t gid)
static int | RF_deletefile_ea (const struct vol *vol, int dirfd, const char *file)
static int | RF_copyfile_ea (const struct vol *vol, int sfd, const char *src, const char *dst)
static int | RF_renamefile_ea (const struct vol *vol, int dirfd, const char *src, const char *dst)
static int | vfs_chown (const struct vol *vol, const char *path, uid_t uid, gid_t gid)
static int | vfs_renamedir (const struct vol *vol, int dirfd, const char *oldpath, const char *newpath)
static int | vfs_deletecurdir (const struct vol *vol)
static int | vfs_setfilmode (const struct vol *vol, const char *name, mode_t mode, struct stat *st)
static int | vfs_setdirmode (const struct vol *vol, const char *name, mode_t mode, struct stat *st)
static int | vfs_setdirunixmode (const struct vol *vol, const char *name, mode_t mode, struct stat *st)
static int | vfs_setdirowner (const struct vol *vol, const char *name, uid_t uid, gid_t gid)
static int | vfs_deletefile (const struct vol *vol, int dirfd, const char *file)
static int | vfs_renamefile (const struct vol *vol, int dirfd, const char *src, const char *dst)
static int | vfs_copyfile (const struct vol *vol, int sfd, const char *src, const char *dst)
static int | vfs_solaris_acl (const struct vol *vol, const char *path, int cmd, int count, void *aces)
static int | vfs_posix_acl (const struct vol *vol, const char *path, acl_type_t type, int count, acl_t acl)
static int | vfs_remove_acl (const struct vol *vol, const char *path, int dir)
static int | vfs_ea_attrname_invalid (const char *func, const char *attruname)
static int | vfs_ea_getsize (const struct vol *vol, char *rbuf, size_t *rbuflen, const char *uname, int oflag, const char *attruname, int fd)
static int | vfs_ea_getcontent (const struct vol *vol, char *rbuf, size_t *rbuflen, const char *uname, int oflag, const char *attruname, int maxreply, int fd)
static int | vfs_ea_list (const struct vol *vol, char *attrnamebuf, size_t *buflen, const char *uname, int oflag, int fd)
static int | vfs_ea_set (const struct vol *vol, const char *uname, const char *attruname, const char *ibuf, size_t attrsize, int oflag, int fd)
static int | vfs_ea_remove (const struct vol *vol, const char *uname, const char *attruname, int oflag, int fd)
static int | vfs_validupath (const struct vol *vol, const char *name)
void | initvol_vfs (struct vol *vol)

## Variables
static struct vfs_ops | vfs_master_funcs
static struct vfs_ops | netatalk_adouble_v2
static struct vfs_ops | netatalk_adouble_ea
static struct vfs_ops | netatalk_ea_adouble
static struct vfs_ops | netatalk_ea_sys
static struct vfs_ops | netatalk_solaris_acl_adouble
static struct vfs_ops | netatalk_posix_acl_adouble

## Typedef Documentation

## ◆ rf_loop

typedef int(* rf_loop) (const struct vol *, struct dirent *, char *, void *, int)

## Function Documentation

## ◆ adouble_setfilmode()

int adouble_setfilmode | ( | const struct vol * | vol,
|  | const char * | name,
|  | mode_t | mode,
|  | struct stat * | st )
| static

## ◆ deletecurdir_adouble_loop()

int deletecurdir_adouble_loop | ( | const struct vol * | vol,
|  | struct dirent * | de,
|  | char * | name,
|  | void * | data,
|  | int | flag )
| static

## ◆ deletecurdir_ea_osx_chkifempty_loop()

int deletecurdir_ea_osx_chkifempty_loop | ( | const struct vol * | vol,
|  | struct dirent * | de,
|  | char * | name,
|  | void * | data,
|  | int | flag )
| static

## ◆ deletecurdir_ea_osx_loop()

int deletecurdir_ea_osx_loop | ( | const struct vol * | vol,
|  | struct dirent * | de,
|  | char * | name,
|  | void * | data,
|  | int | flag )
| static

## ◆ for_each_adouble()

int for_each_adouble | ( | const char * | from,
|  | const char * | name,
|  | rf_loop | fn,
|  | const struct vol * | vol,
|  | void * | data,
|  | int | flag )
| static

## ◆ initvol_vfs()

void initvol_vfs | ( | struct vol * | vol | ) |

## ◆ netatalk_name()

int netatalk_name | ( | const char * | name | ) |
| static

## ◆ RF_chown_adouble()

int RF_chown_adouble | ( | const struct vol * | vol,
|  | const char * | path,
|  | uid_t | uid,
|  | gid_t | gid )
| static

## ◆ RF_chown_ea()

int RF_chown_ea | ( | const struct vol * | vol,
|  | const char * | path,
|  | uid_t | uid,
|  | gid_t | gid )
| static

## ◆ RF_copyfile_adouble()

int RF_copyfile_adouble | ( | const struct vol * | vol,
|  | int | sfd,
|  | const char * | src,
|  | const char * | dst )
| static

## ◆ RF_copyfile_ea()

int RF_copyfile_ea | ( | const struct vol * | vol,
|  | int | sfd,
|  | const char * | src,
|  | const char * | dst )
| static

## ◆ RF_deletecurdir_adouble()

int RF_deletecurdir_adouble | ( | const struct vol * | vol | ) |
| static

## ◆ RF_deletecurdir_ea()

int RF_deletecurdir_ea | ( | const struct vol * | vol | ) |
| static

## ◆ RF_deletefile_adouble()

int RF_deletefile_adouble | ( | const struct vol * | vol,
|  | int | dirfd,
|  | const char * | file )
| static

## ◆ RF_deletefile_ea()

int RF_deletefile_ea | ( | const struct vol * | vol,
|  | int | dirfd,
|  | const char * | file )
| static

## ◆ RF_posix_acl()

int RF_posix_acl | ( | const struct vol * | vol,
|  | const char * | path,
|  | acl_type_t | type,
|  | int | count,
|  | acl_t | acl )
| static

## ◆ RF_posix_remove_acl()

int RF_posix_remove_acl | ( | const struct vol * | vol,
|  | const char * | path,
|  | int | dir )
| static

## ◆ RF_renamedir_adouble()

int RF_renamedir_adouble | ( | const struct vol * | vol,
|  | int | dirfd,
|  | const char * | oldpath,
|  | const char * | newpath )
| static

## ◆ RF_renamedir_ea()

int RF_renamedir_ea | ( | const struct vol * | vol,
|  | int | dirfd,
|  | const char * | oldpath,
|  | const char * | newpath )
| static

## ◆ RF_renamefile_adouble()

int RF_renamefile_adouble | ( | const struct vol * | vol,
|  | int | dirfd,
|  | const char * | src,
|  | const char * | dst )
| static

## ◆ RF_renamefile_ea()

int RF_renamefile_ea | ( | const struct vol * | vol,
|  | int | dirfd,
|  | const char * | src,
|  | const char * | dst )
| static

## ◆ RF_setdirmode_adouble()

int RF_setdirmode_adouble | ( | const struct vol * | vol,
|  | const char * | name,
|  | mode_t | mode,
|  | struct stat * | st )
| static

## ◆ RF_setdirmode_ea()

int RF_setdirmode_ea | ( | const struct vol * | vol,
|  | const char * | name,
|  | mode_t | mode,
|  | struct stat * | st )
| static

## ◆ RF_setdirowner_adouble()

int RF_setdirowner_adouble | ( | const struct vol * | vol,
|  | const char * | name,
|  | uid_t | uid,
|  | gid_t | gid )
| static

## ◆ RF_setdirowner_ea()

int RF_setdirowner_ea | ( | const struct vol * | vol,
|  | const char * | name,
|  | uid_t | uid,
|  | gid_t | gid )
| static

## ◆ RF_setdirunixmode_adouble()

int RF_setdirunixmode_adouble | ( | const struct vol * | vol,
|  | const char * | name,
|  | mode_t | mode,
|  | struct stat * | st )
| static

## ◆ RF_setdirunixmode_ea()

int RF_setdirunixmode_ea | ( | const struct vol * | vol,
|  | const char * | name,
|  | mode_t | mode,
|  | struct stat * | st )
| static

## ◆ RF_setfilmode_adouble()

int RF_setfilmode_adouble | ( | const struct vol * | vol,
|  | const char * | name,
|  | mode_t | mode,
|  | struct stat * | st )
| static

## ◆ RF_setfilmode_ea()

int RF_setfilmode_ea | ( | const struct vol * | vol,
|  | const char * | name,
|  | mode_t | mode,
|  | struct stat * | st )
| static

## ◆ RF_solaris_acl()

int RF_solaris_acl | ( | const struct vol * | vol,
|  | const char * | path,
|  | int | cmd,
|  | int | count,
|  | void * | aces )
| static

## ◆ RF_solaris_remove_acl()

int RF_solaris_remove_acl | ( | const struct vol * | vol,
|  | const char * | path,
|  | int | dir )
| static

## ◆ setdirmode_adouble_loop()

int setdirmode_adouble_loop | ( | const struct vol * | vol,
|  | struct dirent * | de,
|  | char * | name,
|  | void * | data,
|  | int | flag )
| static

## ◆ validupath_adouble()

int validupath_adouble | ( | const struct vol * | vol,
|  | const char * | name )
| static

## ◆ validupath_ea()

int validupath_ea | ( | const struct vol * | vol,
|  | const char * | name )
| static

## ◆ vfs_chown()

int vfs_chown | ( | const struct vol * | vol,
|  | const char * | path,
|  | uid_t | uid,
|  | gid_t | gid )
| static

## ◆ vfs_copyfile()

int vfs_copyfile | ( | const struct vol * | vol,
|  | int | sfd,
|  | const char * | src,
|  | const char * | dst )
| static

## ◆ vfs_deletecurdir()

int vfs_deletecurdir | ( | const struct vol * | vol | ) |
| static

## ◆ vfs_deletefile()

int vfs_deletefile | ( | const struct vol * | vol,
|  | int | dirfd,
|  | const char * | file )
| static

## ◆ vfs_ea_attrname_invalid()

int vfs_ea_attrname_invalid | ( | const char * | func,
|  | const char * | attruname )
| static

## ◆ vfs_ea_getcontent()

int vfs_ea_getcontent | ( | const struct vol * | vol,
|  | char * | rbuf,
|  | size_t * | rbuflen,
|  | const char * | uname,
|  | int | oflag,
|  | const char * | attruname,
|  | int | maxreply,
|  | int | fd )
| static

## ◆ vfs_ea_getsize()

int vfs_ea_getsize | ( | const struct vol * | vol,
|  | char * | rbuf,
|  | size_t * | rbuflen,
|  | const char * | uname,
|  | int | oflag,
|  | const char * | attruname,
|  | int | fd )
| static

## ◆ vfs_ea_list()

int vfs_ea_list | ( | const struct vol * | vol,
|  | char * | attrnamebuf,
|  | size_t * | buflen,
|  | const char * | uname,
|  | int | oflag,
|  | int | fd )
| static

## ◆ vfs_ea_remove()

int vfs_ea_remove | ( | const struct vol * | vol,
|  | const char * | uname,
|  | const char * | attruname,
|  | int | oflag,
|  | int | fd )
| static

## ◆ vfs_ea_set()

int vfs_ea_set | ( | const struct vol * | vol,
|  | const char * | uname,
|  | const char * | attruname,
|  | const char * | ibuf,
|  | size_t | attrsize,
|  | int | oflag,
|  | int | fd )
| static

## ◆ vfs_posix_acl()

int vfs_posix_acl | ( | const struct vol * | vol,
|  | const char * | path,
|  | acl_type_t | type,
|  | int | count,
|  | acl_t | acl )
| static

## ◆ vfs_remove_acl()

int vfs_remove_acl | ( | const struct vol * | vol,
|  | const char * | path,
|  | int | dir )
| static

## ◆ vfs_renamedir()

int vfs_renamedir | ( | const struct vol * | vol,
|  | int | dirfd,
|  | const char * | oldpath,
|  | const char * | newpath )
| static

## ◆ vfs_renamefile()

int vfs_renamefile | ( | const struct vol * | vol,
|  | int | dirfd,
|  | const char * | src,
|  | const char * | dst )
| static

## ◆ vfs_setdirmode()

int vfs_setdirmode | ( | const struct vol * | vol,
|  | const char * | name,
|  | mode_t | mode,
|  | struct stat * | st )
| static

## ◆ vfs_setdirowner()

int vfs_setdirowner | ( | const struct vol * | vol,
|  | const char * | name,
|  | uid_t | uid,
|  | gid_t | gid )
| static

## ◆ vfs_setdirunixmode()

int vfs_setdirunixmode | ( | const struct vol * | vol,
|  | const char * | name,
|  | mode_t | mode,
|  | struct stat * | st )
| static

## ◆ vfs_setfilmode()

int vfs_setfilmode | ( | const struct vol * | vol,
|  | const char * | name,
|  | mode_t | mode,
|  | struct stat * | st )
| static

## ◆ vfs_solaris_acl()

int vfs_solaris_acl | ( | const struct vol * | vol,
|  | const char * | path,
|  | int | cmd,
|  | int | count,
|  | void * | aces )
| static

## ◆ vfs_validupath()

int vfs_validupath | ( | const struct vol * | vol,
|  | const char * | name )
| static

## Variable Documentation

## ◆ netatalk_adouble_ea

struct vfs_ops netatalk_adouble_ea
| static

Initial value:
= {
.vfs_validupath = validupath_ea,
.vfs_chown = RF_chown_ea,
.vfs_renamedir = RF_renamedir_ea,
.vfs_deletecurdir = RF_deletecurdir_ea,
.vfs_setfilmode = RF_setfilmode_ea,
.vfs_setdirmode = RF_setdirmode_ea,
.vfs_setdirunixmode = RF_setdirunixmode_ea,
.vfs_setdirowner = RF_setdirowner_ea,
.vfs_deletefile = RF_deletefile_ea,
.vfs_renamefile = RF_renamefile_ea,
.vfs_copyfile = RF_copyfile_ea,
.vfs_solaris_acl = NULL,
.vfs_posix_acl = NULL,
.vfs_remove_acl = NULL,
.vfs_ea_getsize = NULL,
.vfs_ea_getcontent = NULL,
.vfs_ea_list = NULL,
.vfs_ea_set = NULL,
.vfs_ea_remove = NULL
}
NULL
#define NULL
Definition utf8util.c:47
RF_setdirmode_ea
static int RF_setdirmode_ea(const struct vol *vol, const char *name, mode_t mode, struct stat *st)
Definition vfs.c:618
RF_chown_ea
static int RF_chown_ea(const struct vol *vol, const char *path, uid_t uid, gid_t gid)
Definition vfs.c:524
RF_deletefile_ea
static int RF_deletefile_ea(const struct vol *vol, int dirfd, const char *file)
Definition vfs.c:635
RF_setdirowner_ea
static int RF_setdirowner_ea(const struct vol *vol, const char *name, uid_t uid, gid_t gid)
Definition vfs.c:627
RF_renamefile_ea
static int RF_renamefile_ea(const struct vol *vol, int dirfd, const char *src, const char *dst)
Definition vfs.c:711
validupath_ea
static int validupath_ea(const struct vol *vol, const char *name)
Definition vfs.c:507
RF_renamedir_ea
static int RF_renamedir_ea(const struct vol *vol, int dirfd, const char *oldpath, const char *newpath)
Definition vfs.c:539
RF_copyfile_ea
static int RF_copyfile_ea(const struct vol *vol, int sfd, const char *src, const char *dst)
Definition vfs.c:646
RF_deletecurdir_ea
static int RF_deletecurdir_ea(const struct vol *vol)
Definition vfs.c:577
RF_setfilmode_ea
static int RF_setfilmode_ea(const struct vol *vol, const char *name, mode_t mode, struct stat *st)
Definition vfs.c:603
RF_setdirunixmode_ea
static int RF_setdirunixmode_ea(const struct vol *vol, const char *name, mode_t mode, struct stat *st)
Definition vfs.c:594

## ◆ netatalk_adouble_v2

struct vfs_ops netatalk_adouble_v2
| static

Initial value:
= {
.vfs_validupath = validupath_adouble,
.vfs_chown = RF_chown_adouble,
.vfs_renamedir = RF_renamedir_adouble,
.vfs_deletecurdir = RF_deletecurdir_adouble,
.vfs_setfilmode = RF_setfilmode_adouble,
.vfs_setdirmode = RF_setdirmode_adouble,
.vfs_setdirunixmode = RF_setdirunixmode_adouble,
.vfs_setdirowner = RF_setdirowner_adouble,
.vfs_deletefile = RF_deletefile_adouble,
.vfs_renamefile = RF_renamefile_adouble,
.vfs_copyfile = RF_copyfile_adouble,
.vfs_solaris_acl = NULL,
.vfs_posix_acl = NULL,
.vfs_remove_acl = NULL,
.vfs_ea_getsize = NULL,
.vfs_ea_getcontent = NULL,
.vfs_ea_list = NULL,
.vfs_ea_set = NULL,
.vfs_ea_remove = NULL
}
RF_setdirunixmode_adouble
static int RF_setdirunixmode_adouble(const struct vol *vol, const char *name, mode_t mode, struct stat *st)
Definition vfs.c:194
RF_renamefile_adouble
static int RF_renamefile_adouble(const struct vol *vol, int dirfd, const char *src, const char *dst)
Definition vfs.c:303
RF_chown_adouble
static int RF_chown_adouble(const struct vol *vol, const char *path, uid_t uid, gid_t gid)
Definition vfs.c:120
RF_setdirmode_adouble
static int RF_setdirmode_adouble(const struct vol *vol, const char *name, mode_t mode, struct stat *st)
Definition vfs.c:248
RF_renamedir_adouble
static int RF_renamedir_adouble(const struct vol *vol, int dirfd, const char *oldpath, const char *newpath)
Definition vfs.c:138
RF_copyfile_adouble
static int RF_copyfile_adouble(const struct vol *vol, int sfd, const char *src, const char *dst)
Definition vfs.c:354
RF_setdirowner_adouble
static int RF_setdirowner_adouble(const struct vol *vol, const char *name, uid_t uid, gid_t gid)
Definition vfs.c:283
validupath_adouble
static int validupath_adouble(const struct vol *vol, const char *name)
Definition vfs.c:109
RF_deletecurdir_adouble
static int RF_deletecurdir_adouble(const struct vol *vol)
Definition vfs.c:166
RF_deletefile_adouble
static int RF_deletefile_adouble(const struct vol *vol, int dirfd, const char *file)
Definition vfs.c:296
RF_setfilmode_adouble
static int RF_setfilmode_adouble(const struct vol *vol, const char *name, mode_t mode, struct stat *st)
Definition vfs.c:187

## ◆ netatalk_ea_adouble

struct vfs_ops netatalk_ea_adouble
| static

Initial value:
= {
.vfs_validupath = NULL,
.vfs_chown = ea_chown,
.vfs_renamedir = NULL,
.vfs_deletecurdir = NULL,
.vfs_setfilmode = ea_chmod_file,
.vfs_setdirmode = NULL,
.vfs_setdirunixmode = ea_chmod_dir,
.vfs_setdirowner = NULL,
.vfs_deletefile = ea_deletefile,
.vfs_renamefile = ea_renamefile,
.vfs_copyfile = ea_copyfile,
.vfs_solaris_acl = NULL,
.vfs_posix_acl = NULL,
.vfs_remove_acl = NULL,
.vfs_ea_getsize = get_easize,
.vfs_ea_getcontent = get_eacontent,
.vfs_ea_list = list_eas,
.vfs_ea_set = set_ea,
.vfs_ea_remove = remove_ea
}
ea_chown
int ea_chown(const struct vol *vol, const char *path, uid_t uid, gid_t gid)
Definition ea_ad.c:1567
list_eas
int list_eas(const struct vol *vol, char *attrnamebuf, size_t *buflen, const char *uname, int oflag, int fd)
copy names of EAs into attrnamebuf
Definition ea_ad.c:1114
remove_ea
int remove_ea(const struct vol *vol, const char *uname, const char *attruname, int oflag, int fd)
remove a EA from a file
Definition ea_ad.c:1249
set_ea
int set_ea(const struct vol *vol, const char *uname, const char *attruname, const char *ibuf, size_t attrsize, int oflag, int fd)
set a Solaris native EA
Definition ea_ad.c:1197
ea_chmod_file
int ea_chmod_file(const struct vol *vol, const char *name, mode_t mode, struct stat *st)
Definition ea_ad.c:1632
ea_deletefile
int ea_deletefile(const struct vol *vol, int dirfd, const char *file)
Definition ea_ad.c:1293
get_eacontent
int get_eacontent(const struct vol *vol, char *rbuf, size_t *rbuflen, const char *uname, int oflag, const char *attruname, int maxreply, int fd)
copy EA into rbuf
Definition ea_ad.c:1014
ea_renamefile
int ea_renamefile(const struct vol *vol, int dirfd, const char *src, const char *dst)
Definition ea_ad.c:1353
ea_copyfile
int ea_copyfile(const struct vol *vol, int sfd, const char *src, const char *dst)
copy EAs
Definition ea_ad.c:1471
ea_chmod_dir
int ea_chmod_dir(const struct vol *vol, const char *name, mode_t mode, struct stat *st)
Definition ea_ad.c:1706
get_easize
int get_easize(const struct vol *vol, char *rbuf, size_t *rbuflen, const char *uname, int oflag, const char *attruname, int fd)
get size of an EA
Definition ea_ad.c:949

## ◆ netatalk_ea_sys

struct vfs_ops netatalk_ea_sys
| static

Initial value:
= {
.vfs_validupath = NULL,
.vfs_chown = NULL,
.vfs_renamedir = NULL,
.vfs_deletecurdir = NULL,
.vfs_setfilmode = NULL,
.vfs_setdirmode = NULL,
.vfs_setdirunixmode = NULL,
.vfs_setdirowner = NULL,
.vfs_deletefile = NULL,
.vfs_renamefile = NULL,
.vfs_copyfile = sys_ea_copyfile,
.vfs_solaris_acl = NULL,
.vfs_posix_acl = NULL,
.vfs_remove_acl = NULL,
.vfs_ea_getsize = sys_get_easize,
.vfs_ea_getcontent = sys_get_eacontent,
.vfs_ea_list = sys_list_eas,
.vfs_ea_set = sys_set_ea,
.vfs_ea_remove = sys_remove_ea
}
sys_set_ea
int sys_set_ea(const struct vol *vol, const char *uname, const char *attruname, const char *ibuf, size_t attrsize, int oflag, int fd)
set a native EA
Definition ea_sys.c:403
sys_list_eas
int sys_list_eas(const struct vol *vol, char *attrnamebuf, size_t *buflen, const char *uname, int oflag, int fd)
copy names of native EAs into attrnamebuf
Definition ea_sys.c:307
sys_get_eacontent
int sys_get_eacontent(const struct vol *vol, char *rbuf, size_t *rbuflen, const char *uname, int oflag, const char *attruname, int maxreply, int fd)
copy native EA into rbuf
Definition ea_sys.c:168
sys_get_easize
int sys_get_easize(const struct vol *vol, char *rbuf, size_t *rbuflen, const char *uname, int oflag, const char *attruname, int fd)
get size of a native EA
Definition ea_sys.c:69
sys_remove_ea
int sys_remove_ea(const struct vol *vol, const char *uname, const char *attruname, int oflag, int fd)
remove a native EA
Definition ea_sys.c:523
sys_ea_copyfile
int sys_ea_copyfile(const struct vol *vol, int sfd, const char *src, const char *dst)
copy EAs
Definition ea_sys.c:596

## ◆ netatalk_posix_acl_adouble

struct vfs_ops netatalk_posix_acl_adouble
| static

Initial value:
= {
.vfs_validupath = NULL,
.vfs_chown = NULL,
.vfs_renamedir = NULL,
.vfs_deletecurdir = NULL,
.vfs_setfilmode = NULL,
.vfs_setdirmode = NULL,
.vfs_setdirunixmode = NULL,
.vfs_setdirowner = NULL,
.vfs_deletefile = NULL,
.vfs_renamefile = NULL,
.vfs_copyfile = NULL,
.vfs_posix_acl = RF_posix_acl,
.vfs_remove_acl = RF_posix_remove_acl,
.vfs_ea_getsize = NULL,
.vfs_ea_getcontent = NULL,
.vfs_ea_list = NULL,
.vfs_ea_set = NULL,
.vfs_ea_remove = NULL
}
RF_posix_acl
static int RF_posix_acl(const struct vol *vol, const char *path, acl_type_t type, int count, acl_t acl)
Definition vfs.c:459
RF_posix_remove_acl
static int RF_posix_remove_acl(const struct vol *vol, const char *path, int dir)
Definition vfs.c:484

## ◆ netatalk_solaris_acl_adouble

struct vfs_ops netatalk_solaris_acl_adouble
| static

Initial value:
= {
.vfs_validupath = NULL,
.vfs_chown = NULL,
.vfs_renamedir = NULL,
.vfs_deletecurdir = NULL,
.vfs_setfilmode = NULL,
.vfs_setdirmode = NULL,
.vfs_setdirunixmode = NULL,
.vfs_setdirowner = NULL,
.vfs_deletefile = NULL,
.vfs_renamefile = NULL,
.vfs_copyfile = NULL,
.vfs_solaris_acl = RF_solaris_acl,
.vfs_remove_acl = RF_solaris_remove_acl,
.vfs_ea_getsize = NULL,
.vfs_ea_getcontent = NULL,
.vfs_ea_list = NULL,
.vfs_ea_set = NULL,
.vfs_ea_remove = NULL
}
RF_solaris_acl
static int RF_solaris_acl(const struct vol *vol, const char *path, int cmd, int count, void *aces)
Definition vfs.c:409
RF_solaris_remove_acl
static int RF_solaris_remove_acl(const struct vol *vol, const char *path, int dir)
Definition vfs.c:434

## ◆ vfs_master_funcs

struct vfs_ops vfs_master_funcs
| static

Initial value:
= {
vfs_validupath,
vfs_chown,
vfs_renamedir,
vfs_deletecurdir,
vfs_setfilmode,
vfs_setdirmode,
vfs_setdirunixmode,
vfs_setdirowner,
vfs_deletefile,
vfs_renamefile,
vfs_copyfile,
vfs_solaris_acl,
vfs_posix_acl,
vfs_remove_acl,
vfs_ea_getsize,
vfs_ea_getcontent,
vfs_ea_list,
vfs_ea_set,
vfs_ea_remove
}
vfs_deletecurdir
static int vfs_deletecurdir(const struct vol *vol)
Definition vfs.c:797
vfs_renamefile
static int vfs_renamefile(const struct vol *vol, int dirfd, const char *src, const char *dst)
Definition vfs.c:903
vfs_setfilmode
static int vfs_setfilmode(const struct vol *vol, const char *name, mode_t mode, struct stat *st)
Definition vfs.c:814
vfs_ea_remove
static int vfs_ea_remove(const struct vol *vol, const char *uname, const char *attruname, int oflag, int fd)
Definition vfs.c:1100
vfs_chown
static int vfs_chown(const struct vol *vol, const char *path, uid_t uid, gid_t gid)
Definition vfs.c:761
vfs_setdirunixmode
static int vfs_setdirunixmode(const struct vol *vol, const char *name, mode_t mode, struct stat *st)
Definition vfs.c:850
vfs_ea_list
static int vfs_ea_list(const struct vol *vol, char *attrnamebuf, size_t *buflen, const char *uname, int oflag, int fd)
Definition vfs.c:1056
vfs_renamedir
static int vfs_renamedir(const struct vol *vol, int dirfd, const char *oldpath, const char *newpath)
Definition vfs.c:779
vfs_copyfile
static int vfs_copyfile(const struct vol *vol, int sfd, const char *src, const char *dst)
Definition vfs.c:921
vfs_ea_getcontent
static int vfs_ea_getcontent(const struct vol *vol, char *rbuf, size_t *rbuflen, const char *uname, int oflag, const char *attruname, int maxreply, int fd)
Definition vfs.c:1032
vfs_remove_acl
static int vfs_remove_acl(const struct vol *vol, const char *path, int dir)
Definition vfs.c:980
vfs_validupath
static int vfs_validupath(const struct vol *vol, const char *name)
Definition vfs.c:1123
vfs_posix_acl
static int vfs_posix_acl(const struct vol *vol, const char *path, acl_type_t type, int count, acl_t acl)
Definition vfs.c:961
vfs_setdirmode
static int vfs_setdirmode(const struct vol *vol, const char *name, mode_t mode, struct stat *st)
Definition vfs.c:832
vfs_ea_getsize
static int vfs_ea_getsize(const struct vol *vol, char *rbuf, size_t *rbuflen, const char *uname, int oflag, const char *attruname, int fd)
Definition vfs.c:1008
vfs_ea_set
static int vfs_ea_set(const struct vol *vol, const char *uname, const char *attruname, const char *ibuf, size_t attrsize, int oflag, int fd)
Definition vfs.c:1076
vfs_deletefile
static int vfs_deletefile(const struct vol *vol, int dirfd, const char *file)
Definition vfs.c:886
vfs_setdirowner
static int vfs_setdirowner(const struct vol *vol, const char *name, uid_t uid, gid_t gid)
Definition vfs.c:868
vfs_solaris_acl
static int vfs_solaris_acl(const struct vol *vol, const char *path, int cmd, int count, void *aces)
Definition vfs.c:941

These function pointers get called from the lib users via vol->vfs->func.