diff options
author | Stanislav Kinsbursky <skinsbursky@parallels.com> | 2011-11-25 09:13:04 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-01-31 18:20:26 -0500 |
commit | 1b340d0118da1d7c60c664f17d7c8fce2bb1cd9d (patch) | |
tree | a66a9626f8fca21bd42d13a3b4270b168e2186fc /fs/nfs/dns_resolve.h | |
parent | 5c1cacb175185ed925d7dc13ac7e0653e7a633cd (diff) |
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.h | 14 |
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) | |||
15 | 15 | ||
16 | static inline void nfs_dns_resolver_destroy(void) | 16 | static inline void nfs_dns_resolver_destroy(void) |
17 | {} | 17 | {} |
18 | |||
19 | static inline int nfs_dns_resolver_cache_init(struct net *net) | ||
20 | { | ||
21 | return 0; | ||
22 | } | ||
23 | |||
24 | static inline void nfs_dns_resolver_cache_destroy(struct net *net) | ||
25 | {} | ||
18 | #else | 26 | #else |
19 | extern int nfs_dns_resolver_init(void); | 27 | extern int nfs_dns_resolver_init(void); |
20 | extern void nfs_dns_resolver_destroy(void); | 28 | extern void nfs_dns_resolver_destroy(void); |
29 | extern int nfs_dns_resolver_cache_init(struct net *net); | ||
30 | extern void nfs_dns_resolver_cache_destroy(struct net *net); | ||
21 | #endif | 31 | #endif |
22 | 32 | ||
23 | extern ssize_t nfs_dns_resolve_name(char *name, size_t namelen, | 33 | extern ssize_t nfs_dns_resolve_name(struct net *net, char *name, |
24 | struct sockaddr *sa, size_t salen); | 34 | size_t namelen, struct sockaddr *sa, size_t salen); |
25 | 35 | ||
26 | #endif | 36 | #endif |