Lines Matching refs:mig
2657 struct mi_globals *mig;
2659 mig = kmem_alloc(sizeof (*mig), KM_SLEEP);
2660 mutex_init(&mig->mig_lock, NULL, MUTEX_DEFAULT, NULL);
2661 list_create(&mig->mig_list, sizeof (mntinfo_t),
2663 mig->mig_destructor_called = B_FALSE;
2664 return (mig);
2675 struct mi_globals *mig = data;
2678 ASSERT(mig != NULL);
2680 mutex_enter(&mig->mig_lock);
2681 for (mi = list_head(&mig->mig_list); mi != NULL;
2682 mi = list_next(&mig->mig_list, mi)) {
2725 mutex_exit(&mig->mig_lock);
2729 mutex_exit(&mig->mig_lock);
2733 nfs_mi_free_globals(struct mi_globals *mig)
2735 list_destroy(&mig->mig_list); /* makes sure the list is empty */
2736 mutex_destroy(&mig->mig_lock);
2737 kmem_free(mig, sizeof (*mig));
2745 struct mi_globals *mig = data;
2747 ASSERT(mig != NULL);
2748 mutex_enter(&mig->mig_lock);
2749 if (list_head(&mig->mig_list) != NULL) {
2751 mig->mig_destructor_called = B_TRUE;
2752 mutex_exit(&mig->mig_lock);
2755 nfs_mi_free_globals(mig);
2764 struct mi_globals *mig;
2766 mig = zone_getspecific(mi_list_key, mi->mi_zone);
2767 mutex_enter(&mig->mig_lock);
2768 list_insert_head(&mig->mig_list, mi);
2769 mutex_exit(&mig->mig_lock);
2778 struct mi_globals *mig;
2780 mig = zone_getspecific(mi_list_key, mi->mi_zone);
2781 mutex_enter(&mig->mig_lock);
2782 list_remove(&mig->mig_list, mi);
2788 if (list_head(&mig->mig_list) == NULL &&
2789 mig->mig_destructor_called == B_TRUE) {
2790 nfs_mi_free_globals(mig);
2793 mutex_exit(&mig->mig_lock);