Commit f2b27e1d authored by NeilBrown's avatar NeilBrown Committed by Chuck Lever

SUNRPC: make various functions static, or not exported.

Various functions are only used within the sunrpc module, and several
are only use in the one file.  So clean up:

These are marked static, and any EXPORT is removed.
  svc_rcpb_setup()
  svc_rqst_alloc()
  svc_rqst_free()  - also moved before first use
  svc_rpcbind_set_version()
  svc_drop() - also moved to svc.c

These are now not EXPORTed, but are not static.
  svc_authenticate()
  svc_sock_update_bufs()
Signed-off-by: default avatarNeilBrown <neilb@suse.de>
Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
parent 4ed9ef32
...@@ -401,17 +401,13 @@ struct svc_procedure { ...@@ -401,17 +401,13 @@ struct svc_procedure {
*/ */
int sunrpc_set_pool_mode(const char *val); int sunrpc_set_pool_mode(const char *val);
int sunrpc_get_pool_mode(char *val, size_t size); int sunrpc_get_pool_mode(char *val, size_t size);
int svc_rpcb_setup(struct svc_serv *serv, struct net *net);
void svc_rpcb_cleanup(struct svc_serv *serv, struct net *net); void svc_rpcb_cleanup(struct svc_serv *serv, struct net *net);
int svc_bind(struct svc_serv *serv, struct net *net); int svc_bind(struct svc_serv *serv, struct net *net);
struct svc_serv *svc_create(struct svc_program *, unsigned int, struct svc_serv *svc_create(struct svc_program *, unsigned int,
int (*threadfn)(void *data)); int (*threadfn)(void *data));
struct svc_rqst *svc_rqst_alloc(struct svc_serv *serv,
struct svc_pool *pool, int node);
bool svc_rqst_replace_page(struct svc_rqst *rqstp, bool svc_rqst_replace_page(struct svc_rqst *rqstp,
struct page *page); struct page *page);
void svc_rqst_release_pages(struct svc_rqst *rqstp); void svc_rqst_release_pages(struct svc_rqst *rqstp);
void svc_rqst_free(struct svc_rqst *);
void svc_exit_thread(struct svc_rqst *); void svc_exit_thread(struct svc_rqst *);
struct svc_serv * svc_create_pooled(struct svc_program *prog, struct svc_serv * svc_create_pooled(struct svc_program *prog,
struct svc_stat *stats, struct svc_stat *stats,
...@@ -446,11 +442,6 @@ int svc_generic_rpcbind_set(struct net *net, ...@@ -446,11 +442,6 @@ int svc_generic_rpcbind_set(struct net *net,
u32 version, int family, u32 version, int family,
unsigned short proto, unsigned short proto,
unsigned short port); unsigned short port);
int svc_rpcbind_set_version(struct net *net,
const struct svc_program *progp,
u32 version, int family,
unsigned short proto,
unsigned short port);
#define RPC_MAX_ADDRBUFLEN (63U) #define RPC_MAX_ADDRBUFLEN (63U)
......
...@@ -151,7 +151,6 @@ struct auth_ops { ...@@ -151,7 +151,6 @@ struct auth_ops {
struct svc_xprt; struct svc_xprt;
extern enum svc_auth_status svc_authenticate(struct svc_rqst *rqstp);
extern rpc_authflavor_t svc_auth_flavor(struct svc_rqst *rqstp); extern rpc_authflavor_t svc_auth_flavor(struct svc_rqst *rqstp);
extern int svc_authorise(struct svc_rqst *rqstp); extern int svc_authorise(struct svc_rqst *rqstp);
extern enum svc_auth_status svc_set_client(struct svc_rqst *rqstp); extern enum svc_auth_status svc_set_client(struct svc_rqst *rqstp);
......
...@@ -58,8 +58,6 @@ static inline u32 svc_sock_final_rec(struct svc_sock *svsk) ...@@ -58,8 +58,6 @@ static inline u32 svc_sock_final_rec(struct svc_sock *svsk)
*/ */
void svc_recv(struct svc_rqst *rqstp); void svc_recv(struct svc_rqst *rqstp);
void svc_send(struct svc_rqst *rqstp); void svc_send(struct svc_rqst *rqstp);
void svc_drop(struct svc_rqst *);
void svc_sock_update_bufs(struct svc_serv *serv);
int svc_addsock(struct svc_serv *serv, struct net *net, int svc_addsock(struct svc_serv *serv, struct net *net,
const int fd, char *name_return, const size_t len, const int fd, char *name_return, const size_t len,
const struct cred *cred); const struct cred *cred);
......
...@@ -36,7 +36,11 @@ static inline int sock_is_loopback(struct sock *sk) ...@@ -36,7 +36,11 @@ static inline int sock_is_loopback(struct sock *sk)
return loopback; return loopback;
} }
struct svc_serv;
struct svc_rqst;
int rpc_clients_notifier_register(void); int rpc_clients_notifier_register(void);
void rpc_clients_notifier_unregister(void); void rpc_clients_notifier_unregister(void);
void auth_domain_cleanup(void); void auth_domain_cleanup(void);
void svc_sock_update_bufs(struct svc_serv *serv);
enum svc_auth_status svc_authenticate(struct svc_rqst *rqstp);
#endif /* _NET_SUNRPC_SUNRPC_H */ #endif /* _NET_SUNRPC_SUNRPC_H */
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include <trace/events/sunrpc.h> #include <trace/events/sunrpc.h>
#include "fail.h" #include "fail.h"
#include "sunrpc.h"
#define RPCDBG_FACILITY RPCDBG_SVCDSP #define RPCDBG_FACILITY RPCDBG_SVCDSP
...@@ -417,7 +418,7 @@ struct svc_pool *svc_pool_for_cpu(struct svc_serv *serv) ...@@ -417,7 +418,7 @@ struct svc_pool *svc_pool_for_cpu(struct svc_serv *serv)
return &serv->sv_pools[pidx % serv->sv_nrpools]; return &serv->sv_pools[pidx % serv->sv_nrpools];
} }
int svc_rpcb_setup(struct svc_serv *serv, struct net *net) static int svc_rpcb_setup(struct svc_serv *serv, struct net *net)
{ {
int err; int err;
...@@ -429,7 +430,6 @@ int svc_rpcb_setup(struct svc_serv *serv, struct net *net) ...@@ -429,7 +430,6 @@ int svc_rpcb_setup(struct svc_serv *serv, struct net *net)
svc_unregister(serv, net); svc_unregister(serv, net);
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(svc_rpcb_setup);
void svc_rpcb_cleanup(struct svc_serv *serv, struct net *net) void svc_rpcb_cleanup(struct svc_serv *serv, struct net *net)
{ {
...@@ -664,7 +664,20 @@ svc_release_buffer(struct svc_rqst *rqstp) ...@@ -664,7 +664,20 @@ svc_release_buffer(struct svc_rqst *rqstp)
put_page(rqstp->rq_pages[i]); put_page(rqstp->rq_pages[i]);
} }
struct svc_rqst * static void
svc_rqst_free(struct svc_rqst *rqstp)
{
folio_batch_release(&rqstp->rq_fbatch);
svc_release_buffer(rqstp);
if (rqstp->rq_scratch_page)
put_page(rqstp->rq_scratch_page);
kfree(rqstp->rq_resp);
kfree(rqstp->rq_argp);
kfree(rqstp->rq_auth_data);
kfree_rcu(rqstp, rq_rcu_head);
}
static struct svc_rqst *
svc_rqst_alloc(struct svc_serv *serv, struct svc_pool *pool, int node) svc_rqst_alloc(struct svc_serv *serv, struct svc_pool *pool, int node)
{ {
struct svc_rqst *rqstp; struct svc_rqst *rqstp;
...@@ -698,7 +711,6 @@ svc_rqst_alloc(struct svc_serv *serv, struct svc_pool *pool, int node) ...@@ -698,7 +711,6 @@ svc_rqst_alloc(struct svc_serv *serv, struct svc_pool *pool, int node)
svc_rqst_free(rqstp); svc_rqst_free(rqstp);
return NULL; return NULL;
} }
EXPORT_SYMBOL_GPL(svc_rqst_alloc);
static struct svc_rqst * static struct svc_rqst *
svc_prepare_thread(struct svc_serv *serv, struct svc_pool *pool, int node) svc_prepare_thread(struct svc_serv *serv, struct svc_pool *pool, int node)
...@@ -933,24 +945,6 @@ void svc_rqst_release_pages(struct svc_rqst *rqstp) ...@@ -933,24 +945,6 @@ void svc_rqst_release_pages(struct svc_rqst *rqstp)
} }
} }
/*
* Called from a server thread as it's exiting. Caller must hold the "service
* mutex" for the service.
*/
void
svc_rqst_free(struct svc_rqst *rqstp)
{
folio_batch_release(&rqstp->rq_fbatch);
svc_release_buffer(rqstp);
if (rqstp->rq_scratch_page)
put_page(rqstp->rq_scratch_page);
kfree(rqstp->rq_resp);
kfree(rqstp->rq_argp);
kfree(rqstp->rq_auth_data);
kfree_rcu(rqstp, rq_rcu_head);
}
EXPORT_SYMBOL_GPL(svc_rqst_free);
void void
svc_exit_thread(struct svc_rqst *rqstp) svc_exit_thread(struct svc_rqst *rqstp)
{ {
...@@ -1098,6 +1092,7 @@ static int __svc_register(struct net *net, const char *progname, ...@@ -1098,6 +1092,7 @@ static int __svc_register(struct net *net, const char *progname,
return error; return error;
} }
static
int svc_rpcbind_set_version(struct net *net, int svc_rpcbind_set_version(struct net *net,
const struct svc_program *progp, const struct svc_program *progp,
u32 version, int family, u32 version, int family,
...@@ -1108,7 +1103,6 @@ int svc_rpcbind_set_version(struct net *net, ...@@ -1108,7 +1103,6 @@ int svc_rpcbind_set_version(struct net *net,
version, family, proto, port); version, family, proto, port);
} }
EXPORT_SYMBOL_GPL(svc_rpcbind_set_version);
int svc_generic_rpcbind_set(struct net *net, int svc_generic_rpcbind_set(struct net *net,
const struct svc_program *progp, const struct svc_program *progp,
...@@ -1526,6 +1520,14 @@ svc_process_common(struct svc_rqst *rqstp) ...@@ -1526,6 +1520,14 @@ svc_process_common(struct svc_rqst *rqstp)
goto sendit; goto sendit;
} }
/*
* Drop request
*/
static void svc_drop(struct svc_rqst *rqstp)
{
trace_svc_drop(rqstp);
}
/** /**
* svc_process - Execute one RPC transaction * svc_process - Execute one RPC transaction
* @rqstp: RPC transaction context * @rqstp: RPC transaction context
......
...@@ -905,15 +905,6 @@ void svc_recv(struct svc_rqst *rqstp) ...@@ -905,15 +905,6 @@ void svc_recv(struct svc_rqst *rqstp)
} }
EXPORT_SYMBOL_GPL(svc_recv); EXPORT_SYMBOL_GPL(svc_recv);
/*
* Drop request
*/
void svc_drop(struct svc_rqst *rqstp)
{
trace_svc_drop(rqstp);
}
EXPORT_SYMBOL_GPL(svc_drop);
/** /**
* svc_send - Return reply to client * svc_send - Return reply to client
* @rqstp: RPC transaction context * @rqstp: RPC transaction context
......
...@@ -98,7 +98,6 @@ enum svc_auth_status svc_authenticate(struct svc_rqst *rqstp) ...@@ -98,7 +98,6 @@ enum svc_auth_status svc_authenticate(struct svc_rqst *rqstp)
rqstp->rq_authop = aops; rqstp->rq_authop = aops;
return aops->accept(rqstp); return aops->accept(rqstp);
} }
EXPORT_SYMBOL_GPL(svc_authenticate);
/** /**
* svc_set_client - Assign an appropriate 'auth_domain' as the client * svc_set_client - Assign an appropriate 'auth_domain' as the client
......
...@@ -1378,7 +1378,6 @@ void svc_sock_update_bufs(struct svc_serv *serv) ...@@ -1378,7 +1378,6 @@ void svc_sock_update_bufs(struct svc_serv *serv)
set_bit(XPT_CHNGBUF, &svsk->sk_xprt.xpt_flags); set_bit(XPT_CHNGBUF, &svsk->sk_xprt.xpt_flags);
spin_unlock_bh(&serv->sv_lock); spin_unlock_bh(&serv->sv_lock);
} }
EXPORT_SYMBOL_GPL(svc_sock_update_bufs);
/* /*
* Initialize socket for RPC use and create svc_sock struct * Initialize socket for RPC use and create svc_sock struct
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment