FreeBSD kernel kern code
vfs_export.c File Reference
#include <sys/cdefs.h>
#include "opt_inet.h"
#include "opt_inet6.h"
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/dirent.h>
#include <sys/jail.h>
#include <sys/kernel.h>
#include <sys/lock.h>
#include <sys/malloc.h>
#include <sys/mbuf.h>
#include <sys/mount.h>
#include <sys/mutex.h>
#include <sys/rmlock.h>
#include <sys/refcount.h>
#include <sys/signalvar.h>
#include <sys/socket.h>
#include <sys/vnode.h>
#include <netinet/in.h>
#include <net/radix.h>
#include <rpc/types.h>
#include <rpc/auth.h>
Include dependency graph for vfs_export.c:

Go to the source code of this file.

Data Structures

struct  netcred
 
struct  netexport
 

Functions

 __FBSDID ("$FreeBSD$")
 
static MALLOC_DEFINE (M_NETADDR, "export_host", "Export host address structure")
 
static void vfs_free_addrlist (struct netexport *nep)
 
static int vfs_free_netcred (struct radix_node *rn, void *w)
 
static void vfs_free_addrlist_af (struct radix_node_head **prnh)
 
static int vfs_hang_addrlist (struct mount *mp, struct netexport *nep, struct export_args *argp)
 
static struct netcredvfs_export_lookup (struct mount *, struct sockaddr *)
 
int vfs_export (struct mount *mp, struct export_args *argp)
 
int vfs_setpublicfs (struct mount *mp, struct netexport *nep, struct export_args *argp)
 
int vfs_stdcheckexp (struct mount *mp, struct sockaddr *nam, uint64_t *extflagsp, struct ucred **credanonp, int *numsecflavors, int *secflavors)
 

Function Documentation

◆ __FBSDID()

__FBSDID ( "$FreeBSD$"  )

◆ MALLOC_DEFINE()

static MALLOC_DEFINE ( M_NETADDR  ,
"export_host"  ,
"Export host address structure"   
)
static

◆ vfs_export()

int vfs_export ( struct mount *  mp,
struct export_args *  argp 
)

Definition at line 300 of file vfs_export.c.

References free(), malloc(), vfs_deleteopt(), vfs_free_addrlist(), vfs_hang_addrlist(), and vfs_setpublicfs().

Referenced by vfs_domount_update().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vfs_export_lookup()

static struct netcred * vfs_export_lookup ( struct mount *  mp,
struct sockaddr *  nam 
)
static

Definition at line 460 of file vfs_export.c.

References netexport::ne4, netexport::ne6, netexport::ne_defexported, and netcred::netc_rnodes.

Referenced by vfs_stdcheckexp().

Here is the caller graph for this function:

◆ vfs_free_addrlist()

static void vfs_free_addrlist ( struct netexport nep)
static

Definition at line 278 of file vfs_export.c.

References crfree(), netexport::ne4, netexport::ne6, netexport::ne_defexported, netcred::netc_anon, and vfs_free_addrlist_af().

Referenced by vfs_export().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vfs_free_addrlist_af()

static void vfs_free_addrlist_af ( struct radix_node_head **  prnh)
static

Definition at line 261 of file vfs_export.c.

References vfs_free_netcred().

Referenced by vfs_free_addrlist().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vfs_free_netcred()

static int vfs_free_netcred ( struct radix_node *  rn,
void *  w 
)
static

Definition at line 235 of file vfs_export.c.

References crfree(), and free().

Referenced by vfs_free_addrlist_af().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vfs_hang_addrlist()

static int vfs_hang_addrlist ( struct mount *  mp,
struct netexport nep,
struct export_args *  argp 
)
static

Definition at line 105 of file vfs_export.c.

References crget(), crsetgroups(), free(), malloc(), netexport::ne4, netexport::ne6, netexport::ne_defexported, netcred::netc_anon, netcred::netc_exflags, netcred::netc_numsecflavors, netcred::netc_rnodes, netcred::netc_secflavors, prison0, prison_hold(), and vfs_mount_error().

Referenced by vfs_export().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vfs_setpublicfs()

int vfs_setpublicfs ( struct mount *  mp,
struct netexport nep,
struct export_args *  argp 
)

Definition at line 378 of file vfs_export.c.

References free(), malloc(), and vput().

Referenced by dounmount(), and vfs_export().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vfs_stdcheckexp()

int vfs_stdcheckexp ( struct mount *  mp,
struct sockaddr *  nam,
uint64_t *  extflagsp,
struct ucred **  credanonp,
int *  numsecflavors,
int *  secflavors 
)

Definition at line 516 of file vfs_export.c.

References crhold(), netcred::netc_anon, netcred::netc_exflags, netcred::netc_numsecflavors, netcred::netc_secflavors, and vfs_export_lookup().

Referenced by vfs_register().

Here is the call graph for this function:
Here is the caller graph for this function: