Lines Matching refs:eph_zsd

111 	ephemeral_zsd_t *eph_zsd;  in get_ephemeral_zsd()  local
113 eph_zsd = zone_getspecific(ephemeral_zone_key, zone); in get_ephemeral_zsd()
114 if (eph_zsd != NULL) { in get_ephemeral_zsd()
115 return (eph_zsd); in get_ephemeral_zsd()
119 eph_zsd = zone_getspecific(ephemeral_zone_key, zone); in get_ephemeral_zsd()
120 if (eph_zsd == NULL) { in get_ephemeral_zsd()
121 eph_zsd = kmem_zalloc(sizeof (ephemeral_zsd_t), KM_SLEEP); in get_ephemeral_zsd()
122 eph_zsd->min_uid = MAXUID; in get_ephemeral_zsd()
123 eph_zsd->last_uid = IDMAP_WK__MAX_UID; in get_ephemeral_zsd()
124 eph_zsd->min_gid = MAXUID; in get_ephemeral_zsd()
125 eph_zsd->last_gid = IDMAP_WK__MAX_GID; in get_ephemeral_zsd()
126 mutex_init(&eph_zsd->eph_lock, NULL, MUTEX_DEFAULT, NULL); in get_ephemeral_zsd()
131 eph_zsd->eph_nobody = crdup(zone->zone_kcred); in get_ephemeral_zsd()
132 (void) crsetugid(eph_zsd->eph_nobody, UID_NOBODY, GID_NOBODY); in get_ephemeral_zsd()
133 CR_FLAGS(eph_zsd->eph_nobody) = 0; in get_ephemeral_zsd()
134 eph_zsd->eph_nobody->cr_zone = zone; in get_ephemeral_zsd()
136 (void) zone_setspecific(ephemeral_zone_key, zone, eph_zsd); in get_ephemeral_zsd()
139 return (eph_zsd); in get_ephemeral_zsd()
152 ephemeral_zsd_t *eph_zsd = arg; in destroy_ephemeral_zsd() local
153 if (eph_zsd != NULL) { in destroy_ephemeral_zsd()
154 mutex_destroy(&eph_zsd->eph_lock); in destroy_ephemeral_zsd()
155 crfree(eph_zsd->eph_nobody); in destroy_ephemeral_zsd()
156 kmem_free(eph_zsd, sizeof (ephemeral_zsd_t)); in destroy_ephemeral_zsd()
1175 ephemeral_zsd_t *eph_zsd; in valid_ephemeral_uid() local
1179 eph_zsd = get_ephemeral_zsd(zone); in valid_ephemeral_uid()
1180 ASSERT(eph_zsd != NULL); in valid_ephemeral_uid()
1182 return (id > eph_zsd->min_uid && id <= eph_zsd->last_uid); in valid_ephemeral_uid()
1188 ephemeral_zsd_t *eph_zsd; in valid_ephemeral_gid() local
1192 eph_zsd = get_ephemeral_zsd(zone); in valid_ephemeral_gid()
1193 ASSERT(eph_zsd != NULL); in valid_ephemeral_gid()
1195 return (id > eph_zsd->min_gid && id <= eph_zsd->last_gid); in valid_ephemeral_gid()
1201 ephemeral_zsd_t *eph_zsd = get_ephemeral_zsd(zone); in eph_uid_alloc() local
1203 ASSERT(eph_zsd != NULL); in eph_uid_alloc()
1205 mutex_enter(&eph_zsd->eph_lock); in eph_uid_alloc()
1208 if (eph_zsd->last_uid + count < eph_zsd->last_uid) { in eph_uid_alloc()
1209 mutex_exit(&eph_zsd->eph_lock); in eph_uid_alloc()
1215 eph_zsd->min_uid = eph_zsd->last_uid; in eph_uid_alloc()
1218 *start = eph_zsd->last_uid + 1; in eph_uid_alloc()
1219 atomic_add_32(&eph_zsd->last_uid, count); in eph_uid_alloc()
1220 mutex_exit(&eph_zsd->eph_lock); in eph_uid_alloc()
1227 ephemeral_zsd_t *eph_zsd = get_ephemeral_zsd(zone); in eph_gid_alloc() local
1229 ASSERT(eph_zsd != NULL); in eph_gid_alloc()
1231 mutex_enter(&eph_zsd->eph_lock); in eph_gid_alloc()
1234 if (eph_zsd->last_gid + count < eph_zsd->last_gid) { in eph_gid_alloc()
1235 mutex_exit(&eph_zsd->eph_lock); in eph_gid_alloc()
1241 eph_zsd->min_gid = eph_zsd->last_gid; in eph_gid_alloc()
1244 *start = eph_zsd->last_gid + 1; in eph_gid_alloc()
1245 atomic_add_32(&eph_zsd->last_gid, count); in eph_gid_alloc()
1246 mutex_exit(&eph_zsd->eph_lock); in eph_gid_alloc()
1260 ephemeral_zsd_t *eph_zsd = get_ephemeral_zsd(zone); in get_ephemeral_data() local
1262 ASSERT(eph_zsd != NULL); in get_ephemeral_data()
1264 mutex_enter(&eph_zsd->eph_lock); in get_ephemeral_data()
1266 *min_uid = eph_zsd->min_uid; in get_ephemeral_data()
1267 *last_uid = eph_zsd->last_uid; in get_ephemeral_data()
1268 *min_gid = eph_zsd->min_gid; in get_ephemeral_data()
1269 *last_gid = eph_zsd->last_gid; in get_ephemeral_data()
1271 mutex_exit(&eph_zsd->eph_lock); in get_ephemeral_data()
1279 ephemeral_zsd_t *eph_zsd = get_ephemeral_zsd(zone); in set_ephemeral_data() local
1281 ASSERT(eph_zsd != NULL); in set_ephemeral_data()
1283 mutex_enter(&eph_zsd->eph_lock); in set_ephemeral_data()
1286 eph_zsd->min_uid = min_uid; in set_ephemeral_data()
1288 eph_zsd->last_uid = last_uid; in set_ephemeral_data()
1290 eph_zsd->min_gid = min_gid; in set_ephemeral_data()
1292 eph_zsd->last_gid = last_gid; in set_ephemeral_data()
1294 mutex_exit(&eph_zsd->eph_lock); in set_ephemeral_data()
1304 ephemeral_zsd_t *eph_zsd; in crgetmapped() local
1314 eph_zsd = get_ephemeral_zsd(crgetzone(cr)); in crgetmapped()
1315 return (eph_zsd->eph_nobody); in crgetmapped()
1319 eph_zsd = get_ephemeral_zsd(crgetzone(cr)); in crgetmapped()
1320 return (eph_zsd->eph_nobody); in crgetmapped()