diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2013-07-12 06:34:42 -0400 |
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2013-07-12 06:34:42 -0400 |
| commit | f2006e27396f55276f24434f56e208d86e7f9908 (patch) | |
| tree | 71896db916d33888b4286f80117d3cac0da40e6d /fs/nfs/dns_resolve.c | |
| parent | e399eb56a6110e13f97e644658648602e2b08de7 (diff) | |
| parent | 9903883f1dd6e86f286b7bfa6e4b423f98c1cd9e (diff) | |
Merge branch 'linus' into timers/urgent
Get upstream changes so we can apply fixes against them
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'fs/nfs/dns_resolve.c')
| -rw-r--r-- | fs/nfs/dns_resolve.c | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/fs/nfs/dns_resolve.c b/fs/nfs/dns_resolve.c index 945527092295..fc0f95ec7358 100644 --- a/fs/nfs/dns_resolve.c +++ b/fs/nfs/dns_resolve.c | |||
| @@ -29,7 +29,6 @@ ssize_t nfs_dns_resolve_name(struct net *net, char *name, size_t namelen, | |||
| 29 | kfree(ip_addr); | 29 | kfree(ip_addr); |
| 30 | return ret; | 30 | return ret; |
| 31 | } | 31 | } |
| 32 | EXPORT_SYMBOL_GPL(nfs_dns_resolve_name); | ||
| 33 | 32 | ||
| 34 | #else | 33 | #else |
| 35 | 34 | ||
| @@ -351,7 +350,6 @@ ssize_t nfs_dns_resolve_name(struct net *net, char *name, | |||
| 351 | ret = -ESRCH; | 350 | ret = -ESRCH; |
| 352 | return ret; | 351 | return ret; |
| 353 | } | 352 | } |
| 354 | EXPORT_SYMBOL_GPL(nfs_dns_resolve_name); | ||
| 355 | 353 | ||
| 356 | static struct cache_detail nfs_dns_resolve_template = { | 354 | static struct cache_detail nfs_dns_resolve_template = { |
| 357 | .owner = THIS_MODULE, | 355 | .owner = THIS_MODULE, |
| @@ -396,6 +394,21 @@ void nfs_dns_resolver_cache_destroy(struct net *net) | |||
| 396 | cache_destroy_net(nn->nfs_dns_resolve, net); | 394 | cache_destroy_net(nn->nfs_dns_resolve, net); |
| 397 | } | 395 | } |
| 398 | 396 | ||
| 397 | static int nfs4_dns_net_init(struct net *net) | ||
| 398 | { | ||
| 399 | return nfs_dns_resolver_cache_init(net); | ||
| 400 | } | ||
| 401 | |||
| 402 | static void nfs4_dns_net_exit(struct net *net) | ||
| 403 | { | ||
| 404 | nfs_dns_resolver_cache_destroy(net); | ||
| 405 | } | ||
| 406 | |||
| 407 | static struct pernet_operations nfs4_dns_resolver_ops = { | ||
| 408 | .init = nfs4_dns_net_init, | ||
| 409 | .exit = nfs4_dns_net_exit, | ||
| 410 | }; | ||
| 411 | |||
| 399 | static int rpc_pipefs_event(struct notifier_block *nb, unsigned long event, | 412 | static int rpc_pipefs_event(struct notifier_block *nb, unsigned long event, |
| 400 | void *ptr) | 413 | void *ptr) |
| 401 | { | 414 | { |
| @@ -432,11 +445,24 @@ static struct notifier_block nfs_dns_resolver_block = { | |||
| 432 | 445 | ||
| 433 | int nfs_dns_resolver_init(void) | 446 | int nfs_dns_resolver_init(void) |
| 434 | { | 447 | { |
| 435 | return rpc_pipefs_notifier_register(&nfs_dns_resolver_block); | 448 | int err; |
| 449 | |||
| 450 | err = register_pernet_subsys(&nfs4_dns_resolver_ops); | ||
| 451 | if (err < 0) | ||
| 452 | goto out; | ||
| 453 | err = rpc_pipefs_notifier_register(&nfs_dns_resolver_block); | ||
| 454 | if (err < 0) | ||
| 455 | goto out1; | ||
| 456 | return 0; | ||
| 457 | out1: | ||
| 458 | unregister_pernet_subsys(&nfs4_dns_resolver_ops); | ||
| 459 | out: | ||
| 460 | return err; | ||
| 436 | } | 461 | } |
| 437 | 462 | ||
| 438 | void nfs_dns_resolver_destroy(void) | 463 | void nfs_dns_resolver_destroy(void) |
| 439 | { | 464 | { |
| 440 | rpc_pipefs_notifier_unregister(&nfs_dns_resolver_block); | 465 | rpc_pipefs_notifier_unregister(&nfs_dns_resolver_block); |
| 466 | unregister_pernet_subsys(&nfs4_dns_resolver_ops); | ||
| 441 | } | 467 | } |
| 442 | #endif | 468 | #endif |
