Print this page
curzone reality check and teardown changes to use the RIGHT zone
*** 2565,2575 ****
nlm_unexport(struct exportinfo *exi)
{
struct nlm_globals *g;
struct nlm_host *hostp;
! g = zone_getspecific(nlm_zone_key, curzone);
mutex_enter(&g->lock);
hostp = avl_first(&g->nlm_hosts_tree);
while (hostp != NULL) {
struct nlm_vhold *nvp;
--- 2565,2581 ----
nlm_unexport(struct exportinfo *exi)
{
struct nlm_globals *g;
struct nlm_host *hostp;
! /* This may be called on behalf of global-zone doing shutdown. */
! ASSERT(exi->exi_zone == curzone || curzone == global_zone);
! g = zone_getspecific(nlm_zone_key, exi->exi_zone);
! if (g == NULL) {
! /* Did zone cleanup get here already? */
! return;
! }
mutex_enter(&g->lock);
hostp = avl_first(&g->nlm_hosts_tree);
while (hostp != NULL) {
struct nlm_vhold *nvp;