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