diff options
Diffstat (limited to 'net/sunrpc')
-rw-r--r-- | net/sunrpc/svcauth_unix.c | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/net/sunrpc/svcauth_unix.c b/net/sunrpc/svcauth_unix.c index c8e10216c113..31b9dea1bedd 100644 --- a/net/sunrpc/svcauth_unix.c +++ b/net/sunrpc/svcauth_unix.c | |||
@@ -30,9 +30,6 @@ | |||
30 | 30 | ||
31 | struct unix_domain { | 31 | struct unix_domain { |
32 | struct auth_domain h; | 32 | struct auth_domain h; |
33 | #ifdef CONFIG_NFSD_DEPRECATED | ||
34 | int addr_changes; | ||
35 | #endif /* CONFIG_NFSD_DEPRECATED */ | ||
36 | /* other stuff later */ | 33 | /* other stuff later */ |
37 | }; | 34 | }; |
38 | 35 | ||
@@ -74,9 +71,6 @@ struct auth_domain *unix_domain_find(char *name) | |||
74 | return NULL; | 71 | return NULL; |
75 | } | 72 | } |
76 | new->h.flavour = &svcauth_unix; | 73 | new->h.flavour = &svcauth_unix; |
77 | #ifdef CONFIG_NFSD_DEPRECATED | ||
78 | new->addr_changes = 0; | ||
79 | #endif /* CONFIG_NFSD_DEPRECATED */ | ||
80 | rv = auth_domain_lookup(name, &new->h); | 74 | rv = auth_domain_lookup(name, &new->h); |
81 | } | 75 | } |
82 | } | 76 | } |
@@ -95,9 +89,6 @@ struct ip_map { | |||
95 | char m_class[8]; /* e.g. "nfsd" */ | 89 | char m_class[8]; /* e.g. "nfsd" */ |
96 | struct in6_addr m_addr; | 90 | struct in6_addr m_addr; |
97 | struct unix_domain *m_client; | 91 | struct unix_domain *m_client; |
98 | #ifdef CONFIG_NFSD_DEPRECATED | ||
99 | int m_add_change; | ||
100 | #endif /* CONFIG_NFSD_DEPRECATED */ | ||
101 | }; | 92 | }; |
102 | 93 | ||
103 | static void ip_map_put(struct kref *kref) | 94 | static void ip_map_put(struct kref *kref) |
@@ -151,9 +142,6 @@ static void update(struct cache_head *cnew, struct cache_head *citem) | |||
151 | 142 | ||
152 | kref_get(&item->m_client->h.ref); | 143 | kref_get(&item->m_client->h.ref); |
153 | new->m_client = item->m_client; | 144 | new->m_client = item->m_client; |
154 | #ifdef CONFIG_NFSD_DEPRECATED | ||
155 | new->m_add_change = item->m_add_change; | ||
156 | #endif /* CONFIG_NFSD_DEPRECATED */ | ||
157 | } | 145 | } |
158 | static struct cache_head *ip_map_alloc(void) | 146 | static struct cache_head *ip_map_alloc(void) |
159 | { | 147 | { |
@@ -338,16 +326,6 @@ static int __ip_map_update(struct cache_detail *cd, struct ip_map *ipm, | |||
338 | ip.h.flags = 0; | 326 | ip.h.flags = 0; |
339 | if (!udom) | 327 | if (!udom) |
340 | set_bit(CACHE_NEGATIVE, &ip.h.flags); | 328 | set_bit(CACHE_NEGATIVE, &ip.h.flags); |
341 | #ifdef CONFIG_NFSD_DEPRECATED | ||
342 | else { | ||
343 | ip.m_add_change = udom->addr_changes; | ||
344 | /* if this is from the legacy set_client system call, | ||
345 | * we need m_add_change to be one higher | ||
346 | */ | ||
347 | if (expiry == NEVER) | ||
348 | ip.m_add_change++; | ||
349 | } | ||
350 | #endif /* CONFIG_NFSD_DEPRECATED */ | ||
351 | ip.h.expiry_time = expiry; | 329 | ip.h.expiry_time = expiry; |
352 | ch = sunrpc_cache_update(cd, &ip.h, &ipm->h, | 330 | ch = sunrpc_cache_update(cd, &ip.h, &ipm->h, |
353 | hash_str(ipm->m_class, IP_HASHBITS) ^ | 331 | hash_str(ipm->m_class, IP_HASHBITS) ^ |
@@ -367,62 +345,6 @@ static inline int ip_map_update(struct net *net, struct ip_map *ipm, | |||
367 | return __ip_map_update(sn->ip_map_cache, ipm, udom, expiry); | 345 | return __ip_map_update(sn->ip_map_cache, ipm, udom, expiry); |
368 | } | 346 | } |
369 | 347 | ||
370 | #ifdef CONFIG_NFSD_DEPRECATED | ||
371 | int auth_unix_add_addr(struct net *net, struct in6_addr *addr, struct auth_domain *dom) | ||
372 | { | ||
373 | struct unix_domain *udom; | ||
374 | struct ip_map *ipmp; | ||
375 | |||
376 | if (dom->flavour != &svcauth_unix) | ||
377 | return -EINVAL; | ||
378 | udom = container_of(dom, struct unix_domain, h); | ||
379 | ipmp = ip_map_lookup(net, "nfsd", addr); | ||
380 | |||
381 | if (ipmp) | ||
382 | return ip_map_update(net, ipmp, udom, NEVER); | ||
383 | else | ||
384 | return -ENOMEM; | ||
385 | } | ||
386 | EXPORT_SYMBOL_GPL(auth_unix_add_addr); | ||
387 | |||
388 | int auth_unix_forget_old(struct auth_domain *dom) | ||
389 | { | ||
390 | struct unix_domain *udom; | ||
391 | |||
392 | if (dom->flavour != &svcauth_unix) | ||
393 | return -EINVAL; | ||
394 | udom = container_of(dom, struct unix_domain, h); | ||
395 | udom->addr_changes++; | ||
396 | return 0; | ||
397 | } | ||
398 | EXPORT_SYMBOL_GPL(auth_unix_forget_old); | ||
399 | |||
400 | struct auth_domain *auth_unix_lookup(struct net *net, struct in6_addr *addr) | ||
401 | { | ||
402 | struct ip_map *ipm; | ||
403 | struct auth_domain *rv; | ||
404 | struct sunrpc_net *sn; | ||
405 | |||
406 | sn = net_generic(net, sunrpc_net_id); | ||
407 | ipm = ip_map_lookup(net, "nfsd", addr); | ||
408 | |||
409 | if (!ipm) | ||
410 | return NULL; | ||
411 | if (cache_check(sn->ip_map_cache, &ipm->h, NULL)) | ||
412 | return NULL; | ||
413 | |||
414 | if ((ipm->m_client->addr_changes - ipm->m_add_change) >0) { | ||
415 | sunrpc_invalidate(&ipm->h, sn->ip_map_cache); | ||
416 | rv = NULL; | ||
417 | } else { | ||
418 | rv = &ipm->m_client->h; | ||
419 | kref_get(&rv->ref); | ||
420 | } | ||
421 | cache_put(&ipm->h, sn->ip_map_cache); | ||
422 | return rv; | ||
423 | } | ||
424 | EXPORT_SYMBOL_GPL(auth_unix_lookup); | ||
425 | #endif /* CONFIG_NFSD_DEPRECATED */ | ||
426 | 348 | ||
427 | void svcauth_unix_purge(void) | 349 | void svcauth_unix_purge(void) |
428 | { | 350 | { |