forked from mirrors/linux
		
	gss_mech_register() calls svcauth_gss_register_pseudoflavor() for each flavour, but gss_mech_unregister() does not call auth_domain_put(). This is unbalanced and makes it impossible to reload the module. Change svcauth_gss_register_pseudoflavor() to return the registered auth_domain, and save it for later release. Cc: stable@vger.kernel.org (v2.6.12+) Link: https://bugzilla.kernel.org/show_bug.cgi?id=206651 Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
		
			
				
	
	
		
			27 lines
		
	
	
	
		
			782 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
	
		
			782 B
		
	
	
	
		
			C
		
	
	
	
	
	
/* SPDX-License-Identifier: GPL-2.0 */
 | 
						|
/*
 | 
						|
 * linux/include/linux/sunrpc/svcauth_gss.h
 | 
						|
 *
 | 
						|
 * Bruce Fields <bfields@umich.edu>
 | 
						|
 * Copyright (c) 2002 The Regents of the University of Michigan
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef _LINUX_SUNRPC_SVCAUTH_GSS_H
 | 
						|
#define _LINUX_SUNRPC_SVCAUTH_GSS_H
 | 
						|
 | 
						|
#include <linux/sched.h>
 | 
						|
#include <linux/sunrpc/types.h>
 | 
						|
#include <linux/sunrpc/xdr.h>
 | 
						|
#include <linux/sunrpc/svcauth.h>
 | 
						|
#include <linux/sunrpc/svcsock.h>
 | 
						|
#include <linux/sunrpc/auth_gss.h>
 | 
						|
 | 
						|
int gss_svc_init(void);
 | 
						|
void gss_svc_shutdown(void);
 | 
						|
int gss_svc_init_net(struct net *net);
 | 
						|
void gss_svc_shutdown_net(struct net *net);
 | 
						|
struct auth_domain *svcauth_gss_register_pseudoflavor(u32 pseudoflavor,
 | 
						|
						      char *name);
 | 
						|
u32 svcauth_gss_flavor(struct auth_domain *dom);
 | 
						|
 | 
						|
#endif /* _LINUX_SUNRPC_SVCAUTH_GSS_H */
 |