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
|