 1b340d0118
			
		
	
	
	1b340d0118
	
	
	
		
			
			This patch implements DNS resolver cache creation and registration for each alive network namespace context. This was done by registering NFS per-net operations, responsible for DNS cache allocation/register and unregister/destructioning instead of initialization and destruction of static "nfs_dns_resolve" cache detail (this one was removed). Pointer to network dns resolver cache is stored in new per-net "nfs_net" structure. This patch also changes nfs_dns_resolve_name() function prototype (and it's calls) by adding network pointer parameter, which is used to get proper DNS resolver cache pointer for do_cache_lookup_wait() call. Note: empty nfs_dns_resolver_init() and nfs_dns_resolver_destroy() functions will be used in next patch in the series. Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			812 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			812 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Resolve DNS hostnames into valid ip addresses
 | |
|  */
 | |
| #ifndef __LINUX_FS_NFS_DNS_RESOLVE_H
 | |
| #define __LINUX_FS_NFS_DNS_RESOLVE_H
 | |
| 
 | |
| #define NFS_DNS_HOSTNAME_MAXLEN	(128)
 | |
| 
 | |
| 
 | |
| #ifdef CONFIG_NFS_USE_KERNEL_DNS
 | |
| static inline int nfs_dns_resolver_init(void)
 | |
| {
 | |
| 	return 0;
 | |
| }
 | |
| 
 | |
| static inline void nfs_dns_resolver_destroy(void)
 | |
| {}
 | |
| 
 | |
| static inline int nfs_dns_resolver_cache_init(struct net *net)
 | |
| {
 | |
| 	return 0;
 | |
| }
 | |
| 
 | |
| static inline void nfs_dns_resolver_cache_destroy(struct net *net)
 | |
| {}
 | |
| #else
 | |
| extern int nfs_dns_resolver_init(void);
 | |
| extern void nfs_dns_resolver_destroy(void);
 | |
| extern int nfs_dns_resolver_cache_init(struct net *net);
 | |
| extern void nfs_dns_resolver_cache_destroy(struct net *net);
 | |
| #endif
 | |
| 
 | |
| extern ssize_t nfs_dns_resolve_name(struct net *net, char *name,
 | |
| 		size_t namelen,	struct sockaddr *sa, size_t salen);
 | |
| 
 | |
| #endif
 |