#include <linux/completion.h>
#include <linux/ip.h>
#include <linux/module.h>
#include <linux/sched/signal.h>
#include <linux/sunrpc/svc.h>
#include <linux/sunrpc/svcsock.h>
#include <linux/nfs_fs.h>
#include <linux/errno.h>
#include <linux/mutex.h>
#include <linux/freezer.h>
#include <linux/sunrpc/svcauth_gss.h>
#include <linux/sunrpc/bc_xprt.h>
#include <net/inet_sock.h>
#include "nfs4_fs.h"
#include "callback.h"
#include "internal.h"
#include "netns.h"
#define NFSDBG_FACILITY …
struct nfs_callback_data { … };
static struct nfs_callback_data nfs_callback_info[NFS4_MAX_MINOR_VERSION + 1];
static DEFINE_MUTEX(nfs_callback_mutex);
static struct svc_program nfs4_callback_program;
static int nfs4_callback_up_net(struct svc_serv *serv, struct net *net)
{ … }
static int
nfs4_callback_svc(void *vrqstp)
{ … }
#if defined(CONFIG_NFS_V4_1)
static inline void nfs_callback_bc_serv(u32 minorversion, struct rpc_xprt *xprt,
struct svc_serv *serv)
{ … }
#else
static inline void nfs_callback_bc_serv(u32 minorversion, struct rpc_xprt *xprt,
struct svc_serv *serv)
{
}
#endif
static int nfs_callback_start_svc(int minorversion, struct rpc_xprt *xprt,
struct svc_serv *serv)
{ … }
static void nfs_callback_down_net(u32 minorversion, struct svc_serv *serv, struct net *net)
{ … }
static int nfs_callback_up_net(int minorversion, struct svc_serv *serv,
struct net *net, struct rpc_xprt *xprt)
{ … }
static struct svc_serv *nfs_callback_create_svc(int minorversion)
{ … }
int nfs_callback_up(u32 minorversion, struct rpc_xprt *xprt)
{ … }
void nfs_callback_down(int minorversion, struct net *net)
{ … }
int
check_gss_callback_principal(struct nfs_client *clp, struct svc_rqst *rqstp)
{ … }
static enum svc_auth_status nfs_callback_authenticate(struct svc_rqst *rqstp)
{ … }
static const struct svc_version *nfs4_callback_version[] = …;
static struct svc_program nfs4_callback_program = …;