Lines Matching refs:fsszone

233  *                 fsszone
249 * That is, fsspsets contain a list of fsszone's that are currently active in
251 * threads on the pset. fssproj's in turn point to the fsszone which they
584 * The following routine returns a pointer to the fsszone structure which
590 fsszone_t *fsszone;
599 fsszone = fsspset->fssps_zones;
601 if (fsszone->fssz_zone == zone) {
602 return (fsszone);
604 fsszone = fsszone->fssz_next;
605 } while (fsszone != fsspset->fssps_zones);
611 * The following routine links new fsszone structure into doubly linked list of
615 fss_insert_fsszone(fsspset_t *fsspset, zone_t *zone, fsszone_t *fsszone)
619 fsszone->fssz_zone = zone;
620 fsszone->fssz_rshares = zone->zone_shares;
624 * This will be the first fsszone for this fsspset
626 fsszone->fssz_next = fsszone->fssz_prev = fsszone;
627 fsspset->fssps_zones = fsszone;
630 * Insert this fsszone to the doubly linked list.
634 fsszone->fssz_next = fssz_head;
635 fsszone->fssz_prev = fssz_head->fssz_prev;
636 fssz_head->fssz_prev->fssz_next = fsszone;
637 fssz_head->fssz_prev = fsszone;
638 fsspset->fssps_zones = fsszone;
643 * The following routine removes a single fsszone structure from the doubly
645 * global fsspsets_lock must be held in case this fsszone structure is the last
646 * on the above mentioned list. Also note that the fsszone structure is not
650 fss_remove_fsszone(fsspset_t *fsspset, fsszone_t *fsszone)
653 ASSERT(fsszone->fssz_nproj == 0);
654 ASSERT(fsszone->fssz_shares == 0);
655 ASSERT(fsszone->fssz_runnable == 0);
657 if (fsszone->fssz_next != fsszone) {
661 fsszone->fssz_prev->fssz_next = fsszone->fssz_next;
662 fsszone->fssz_next->fssz_prev = fsszone->fssz_prev;
663 if (fsspset->fssps_zones == fsszone)
664 fsspset->fssps_zones = fsszone->fssz_next;
707 fss_insert_fssproj(fsspset_t *fsspset, kproject_t *kpj, fsszone_t *fsszone,
736 fssproj->fssp_fsszone = fsszone;
737 fsszone->fssz_nproj++;
738 ASSERT(fsszone->fssz_nproj != 0);
752 fsszone_t *fsszone;
760 fsszone = fssproj->fssp_fsszone;
761 fsszone->fssz_nproj--;
771 if (fsszone->fssz_nproj == 0)
772 fss_remove_fsszone(fsspset, fsszone);
780 ASSERT(fsszone->fssz_nproj == 0);
781 fss_remove_fsszone(fsspset, fsszone);
792 fsszone_t *fsszone;
800 fsszone = fssproj->fssp_fsszone;
804 fsszone->fssz_shares -= fssproj->fssp_shares;
805 if (--fsszone->fssz_runnable == 0)
806 fsspset->fssps_shares -= fsszone->fssz_rshares;
819 fsszone_t *fsszone;
827 fsszone = fssproj->fssp_fsszone;
830 fsszone->fssz_shares += fssproj->fssp_shares;
831 if (++fsszone->fssz_runnable == 1)
832 fsspset->fssps_shares += fsszone->fssz_rshares;
934 fsszone_t *fsszone;
949 fsszone = FSSPROJ2FSSZONE(fssproj);
962 if (fssproj->fssp_shares == 0 || fsszone->fssz_rshares == 0) {
1042 fsszone_t *fsszone;
1079 fsszone = fssproj->fssp_fsszone;
1080 zp = fsszone->fssz_zone;
1111 fsszone->fssz_shares -=
1113 fsszone->fssz_shares += kpj_shares;
1123 if (fsszone->fssz_rshares != zone_ext_shares) {
1124 if (fsszone->fssz_runnable != 0) {
1126 fsszone->fssz_rshares;
1131 fsszone->fssz_rshares = zone_ext_shares;
1133 zone_int_shares = fsszone->fssz_shares;
1631 fsszone_t *fsszone;
1703 if ((fsszone = fss_find_fsszone(fsspset, zone)) == NULL) {
1704 if ((fsszone = kmem_zalloc(sizeof (fsszone_t), KM_NOSLEEP))
1710 fss_insert_fsszone(fsspset, zone, fsszone);
1718 fss_remove_fsszone(fsspset, fsszone);
1719 kmem_free(fsszone, sizeof (fsszone_t));
1724 fss_insert_fssproj(fsspset, kpj, fsszone, fssproj);
1774 fsszone_t *fsszone;
1798 fsszone = fssproj->fssp_fsszone;
1803 fsszone->fssz_shares -= fssproj->fssp_shares;
1804 if (--fsszone->fssz_runnable == 0)
1806 fsszone->fssz_rshares;
1815 if (fsszone->fssz_nproj == 0)
1816 kmem_free(fsszone, sizeof (fsszone_t));
2075 fsszone_t *fsszone;
2089 fsszone = fssproj->fssp_fsszone;
2098 fsszone->fssz_shares -= fssproj->fssp_shares;
2099 if (--fsszone->fssz_runnable == 0)
2100 fsspset->fssps_shares -= fsszone->fssz_rshares;
2114 if (fsszone->fssz_nproj == 0)
2115 kmem_free(fsszone, sizeof (fsszone_t));