summaryrefslogtreecommitdiffstats
path: root/fs/nfs/dns_resolve.h
diff options
context:
space:
mode:
authorStanislav Kinsbursky2011-11-25 15:13:04 +0100
committerTrond Myklebust2012-02-01 00:20:26 +0100
commit1b340d0118da1d7c60c664f17d7c8fce2bb1cd9d (patch)
treea66a9626f8fca21bd42d13a3b4270b168e2186fc /fs/nfs/dns_resolve.h
parentNFS: handle NFS caches dentries by network namespace aware routines (diff)
downloadkernel-qcow2-linux-1b340d0118da1d7c60c664f17d7c8fce2bb1cd9d.tar.gz
kernel-qcow2-linux-1b340d0118da1d7c60c664f17d7c8fce2bb1cd9d.tar.xz
kernel-qcow2-linux-1b340d0118da1d7c60c664f17d7c8fce2bb1cd9d.zip
NFS: DNS resolver cache per network namespace context introduced
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>
Diffstat (limited to 'fs/nfs/dns_resolve.h')
-rw-r--r--fs/nfs/dns_resolve.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/fs/nfs/dns_resolve.h b/fs/nfs/dns_resolve.h
index 199bb5543a91..2e4f596d2923 100644
--- a/fs/nfs/dns_resolve.h
+++ b/fs/nfs/dns_resolve.h
@@ -15,12 +15,22 @@ static inline int nfs_dns_resolver_init(void)
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(char *name, size_t namelen,
- struct sockaddr *sa, size_t salen);
+extern ssize_t nfs_dns_resolve_name(struct net *net, char *name,
+ size_t namelen, struct sockaddr *sa, size_t salen);
#endif