diff options
Diffstat (limited to 'include/linux/sunrpc')
| -rw-r--r-- | include/linux/sunrpc/svc.h | 2 | ||||
| -rw-r--r-- | include/linux/sunrpc/svcauth.h | 13 | ||||
| -rw-r--r-- | include/linux/sunrpc/svcauth_gss.h | 1 | 
3 files changed, 12 insertions, 4 deletions
diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h index 51b29ac45a8..40e0a273fae 100644 --- a/include/linux/sunrpc/svc.h +++ b/include/linux/sunrpc/svc.h @@ -232,7 +232,6 @@ struct svc_rqst {  	struct svc_pool *	rq_pool;	/* thread pool */  	struct svc_procedure *	rq_procinfo;	/* procedure info */  	struct auth_ops *	rq_authop;	/* authentication flavour */ -	u32			rq_flavor;	/* pseudoflavor */  	struct svc_cred		rq_cred;	/* auth info */  	void *			rq_xprt_ctxt;	/* transport specific context ptr */  	struct svc_deferred_req*rq_deferred;	/* deferred request we are replaying */ @@ -416,6 +415,7 @@ struct svc_procedure {   */  int svc_rpcb_setup(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);  struct svc_serv *svc_create(struct svc_program *, unsigned int,  			    void (*shutdown)(struct svc_serv *, struct net *net));  struct svc_rqst *svc_prepare_thread(struct svc_serv *serv, diff --git a/include/linux/sunrpc/svcauth.h b/include/linux/sunrpc/svcauth.h index 548790e9113..dd74084a979 100644 --- a/include/linux/sunrpc/svcauth.h +++ b/include/linux/sunrpc/svcauth.h @@ -15,14 +15,23 @@  #include <linux/sunrpc/msg_prot.h>  #include <linux/sunrpc/cache.h>  #include <linux/hash.h> +#include <linux/cred.h> -#define SVC_CRED_NGROUPS	32  struct svc_cred {  	uid_t			cr_uid;  	gid_t			cr_gid;  	struct group_info	*cr_group_info; +	u32			cr_flavor; /* pseudoflavor */ +	char			*cr_principal; /* for gss */  }; +static inline void free_svc_cred(struct svc_cred *cred) +{ +	if (cred->cr_group_info) +		put_group_info(cred->cr_group_info); +	kfree(cred->cr_principal); +} +  struct svc_rqst;		/* forward decl */  struct in6_addr; @@ -131,7 +140,7 @@ extern struct auth_domain *auth_domain_lookup(char *name, struct auth_domain *ne  extern struct auth_domain *auth_domain_find(char *name);  extern struct auth_domain *auth_unix_lookup(struct net *net, struct in6_addr *addr);  extern int auth_unix_forget_old(struct auth_domain *dom); -extern void svcauth_unix_purge(void); +extern void svcauth_unix_purge(struct net *net);  extern void svcauth_unix_info_release(struct svc_xprt *xpt);  extern int svcauth_unix_set_client(struct svc_rqst *rqstp); diff --git a/include/linux/sunrpc/svcauth_gss.h b/include/linux/sunrpc/svcauth_gss.h index 7c32daa025e..726aff1a520 100644 --- a/include/linux/sunrpc/svcauth_gss.h +++ b/include/linux/sunrpc/svcauth_gss.h @@ -22,7 +22,6 @@ int gss_svc_init_net(struct net *net);  void gss_svc_shutdown_net(struct net *net);  int svcauth_gss_register_pseudoflavor(u32 pseudoflavor, char * name);  u32 svcauth_gss_flavor(struct auth_domain *dom); -char *svc_gss_principal(struct svc_rqst *);  #endif /* __KERNEL__ */  #endif /* _LINUX_SUNRPC_SVCAUTH_GSS_H */  |