diff options
| -rw-r--r-- | fs/lockd/host.c | 57 |
1 files changed, 30 insertions, 27 deletions
diff --git a/fs/lockd/host.c b/fs/lockd/host.c index 6c56090ca531..8cbf53d2c1bb 100644 --- a/fs/lockd/host.c +++ b/fs/lockd/host.c | |||
| @@ -572,6 +572,35 @@ void nlm_host_rebooted(const struct nlm_reboot *info) | |||
| 572 | nsm_release(nsm); | 572 | nsm_release(nsm); |
| 573 | } | 573 | } |
| 574 | 574 | ||
| 575 | static void nlm_complain_hosts(struct net *net) | ||
| 576 | { | ||
| 577 | struct hlist_head *chain; | ||
| 578 | struct hlist_node *pos; | ||
| 579 | struct nlm_host *host; | ||
| 580 | |||
| 581 | if (net) { | ||
| 582 | struct lockd_net *ln = net_generic(net, lockd_net_id); | ||
| 583 | |||
| 584 | if (ln->nrhosts == 0) | ||
| 585 | return; | ||
| 586 | printk(KERN_WARNING "lockd: couldn't shutdown host module for net %p!\n", net); | ||
| 587 | dprintk("lockd: %lu hosts left in net %p:\n", ln->nrhosts, net); | ||
| 588 | } else { | ||
| 589 | if (nrhosts == 0) | ||
| 590 | return; | ||
| 591 | printk(KERN_WARNING "lockd: couldn't shutdown host module!\n"); | ||
| 592 | dprintk("lockd: %lu hosts left:\n", nrhosts); | ||
| 593 | } | ||
| 594 | |||
| 595 | for_each_host(host, pos, chain, nlm_server_hosts) { | ||
| 596 | if (net && host->net != net) | ||
| 597 | continue; | ||
| 598 | dprintk(" %s (cnt %d use %d exp %ld net %p)\n", | ||
| 599 | host->h_name, atomic_read(&host->h_count), | ||
| 600 | host->h_inuse, host->h_expires, host->net); | ||
| 601 | } | ||
| 602 | } | ||
| 603 | |||
| 575 | void | 604 | void |
| 576 | nlm_shutdown_hosts_net(struct net *net) | 605 | nlm_shutdown_hosts_net(struct net *net) |
| 577 | { | 606 | { |
| @@ -598,18 +627,7 @@ nlm_shutdown_hosts_net(struct net *net) | |||
| 598 | nlm_gc_hosts(net); | 627 | nlm_gc_hosts(net); |
| 599 | mutex_unlock(&nlm_host_mutex); | 628 | mutex_unlock(&nlm_host_mutex); |
| 600 | 629 | ||
| 601 | /* complain if any hosts are left */ | 630 | nlm_complain_hosts(net); |
| 602 | if (net) { | ||
| 603 | struct lockd_net *ln = net_generic(net, lockd_net_id); | ||
| 604 | |||
| 605 | printk(KERN_WARNING "lockd: couldn't shutdown host module for net %p!\n", net); | ||
| 606 | dprintk("lockd: %lu hosts left in net %p:\n", ln->nrhosts, net); | ||
| 607 | for_each_host(host, pos, chain, nlm_server_hosts) { | ||
| 608 | dprintk(" %s (cnt %d use %d exp %ld net %p)\n", | ||
| 609 | host->h_name, atomic_read(&host->h_count), | ||
| 610 | host->h_inuse, host->h_expires, host->net); | ||
| 611 | } | ||
| 612 | } | ||
| 613 | } | 631 | } |
| 614 | 632 | ||
| 615 | /* | 633 | /* |
| @@ -619,22 +637,7 @@ nlm_shutdown_hosts_net(struct net *net) | |||
| 619 | void | 637 | void |
| 620 | nlm_shutdown_hosts(void) | 638 | nlm_shutdown_hosts(void) |
| 621 | { | 639 | { |
| 622 | struct hlist_head *chain; | ||
| 623 | struct hlist_node *pos; | ||
| 624 | struct nlm_host *host; | ||
| 625 | |||
| 626 | nlm_shutdown_hosts_net(NULL); | 640 | nlm_shutdown_hosts_net(NULL); |
| 627 | |||
| 628 | /* complain if any hosts are left */ | ||
| 629 | if (nrhosts != 0) { | ||
| 630 | printk(KERN_WARNING "lockd: couldn't shutdown host module!\n"); | ||
| 631 | dprintk("lockd: %lu hosts left:\n", nrhosts); | ||
| 632 | for_each_host(host, pos, chain, nlm_server_hosts) { | ||
| 633 | dprintk(" %s (cnt %d use %d exp %ld net %p)\n", | ||
| 634 | host->h_name, atomic_read(&host->h_count), | ||
| 635 | host->h_inuse, host->h_expires, host->net); | ||
| 636 | } | ||
| 637 | } | ||
| 638 | } | 641 | } |
| 639 | 642 | ||
| 640 | /* | 643 | /* |
