263 strfree(ran->ran_netid);
264 kmem_free(ran, sizeof (*ran));
265 }
266
267 list_destroy(&ren->ren_authlist);
268 exi_rele(ren->ren_exi);
269 kmem_free(ren, sizeof (*ren));
270 }
271 }
272
273 /*ARGSUSED*/
274 static void
275 nfsauth_zone_fini(zoneid_t zoneid, void *data)
276 {
277 nfsauth_globals_t *nag = data;
278
279 list_destroy(&nag->refreshq_queue);
280 cv_destroy(&nag->refreshq_cv);
281 mutex_destroy(&nag->refreshq_lock);
282 mutex_destroy(&nag->mountd_lock);
283 kmem_free(nag, sizeof (*nag));
284 }
285
286 /*
287 * Convert the address in a netbuf to
288 * a hash index for the auth_cache table.
289 */
290 static int
291 hash(struct netbuf *a)
292 {
293 int i, h = 0;
294
295 for (i = 0; i < a->len; i++)
296 h ^= a->buf[i];
297
298 return (h & (AUTH_TABLESIZE - 1));
299 }
300
301 /*
302 * Mask out the components of an
|
263 strfree(ran->ran_netid);
264 kmem_free(ran, sizeof (*ran));
265 }
266
267 list_destroy(&ren->ren_authlist);
268 exi_rele(ren->ren_exi);
269 kmem_free(ren, sizeof (*ren));
270 }
271 }
272
273 /*ARGSUSED*/
274 static void
275 nfsauth_zone_fini(zoneid_t zoneid, void *data)
276 {
277 nfsauth_globals_t *nag = data;
278
279 list_destroy(&nag->refreshq_queue);
280 cv_destroy(&nag->refreshq_cv);
281 mutex_destroy(&nag->refreshq_lock);
282 mutex_destroy(&nag->mountd_lock);
283 /* Extra cleanup. */
284 if (nag->mountd_dh != NULL)
285 door_ki_rele(nag->mountd_dh);
286 kmem_free(nag, sizeof (*nag));
287 }
288
289 /*
290 * Convert the address in a netbuf to
291 * a hash index for the auth_cache table.
292 */
293 static int
294 hash(struct netbuf *a)
295 {
296 int i, h = 0;
297
298 for (i = 0; i < a->len; i++)
299 h ^= a->buf[i];
300
301 return (h & (AUTH_TABLESIZE - 1));
302 }
303
304 /*
305 * Mask out the components of an
|