Print this page




 330             (caddr_t)&bigwad->ppriv, rlimit, credp);
 331         if (error)
 332                 goto done;
 333 
 334         prii = priv_hold_implinfo();
 335         error = elfnote(vp, &offset, NT_PRPRIVINFO, priv_get_implinfo_size(),
 336             (caddr_t)prii, rlimit, credp);
 337         priv_release_implinfo();
 338         if (error)
 339                 goto done;
 340 
 341         /* zone can't go away as long as process exists */
 342         error = elfnote(vp, &offset, NT_ZONENAME,
 343             strlen(p->p_zone->zone_name) + 1, p->p_zone->zone_name,
 344             rlimit, credp);
 345         if (error)
 346                 goto done;
 347 
 348 
 349         /* open file table */

 350         vroot = PTOU(p)->u_rdir;
 351         if (vroot == NULL)
 352                 vroot = rootdir;
 353 
 354         VN_HOLD(vroot);

 355 
 356         fip = P_FINFO(p);
 357 
 358         for (fd = 0; fd < fip->fi_nfiles; fd++) {
 359                 uf_entry_t *ufp;
 360                 vnode_t *fvp;
 361                 struct file *fp;
 362                 vattr_t vattr;
 363                 prfdinfo_core_t fdinfo;
 364 
 365                 bzero(&fdinfo, sizeof (fdinfo));
 366 
 367                 mutex_enter(&fip->fi_lock);
 368                 UF_ENTER(ufp, fip, fd);
 369                 if (((fp = ufp->uf_file) == NULL) || (fp->f_count < 1)) {
 370                         UF_EXIT(ufp);
 371                         mutex_exit(&fip->fi_lock);
 372                         continue;
 373                 }
 374 




 330             (caddr_t)&bigwad->ppriv, rlimit, credp);
 331         if (error)
 332                 goto done;
 333 
 334         prii = priv_hold_implinfo();
 335         error = elfnote(vp, &offset, NT_PRPRIVINFO, priv_get_implinfo_size(),
 336             (caddr_t)prii, rlimit, credp);
 337         priv_release_implinfo();
 338         if (error)
 339                 goto done;
 340 
 341         /* zone can't go away as long as process exists */
 342         error = elfnote(vp, &offset, NT_ZONENAME,
 343             strlen(p->p_zone->zone_name) + 1, p->p_zone->zone_name,
 344             rlimit, credp);
 345         if (error)
 346                 goto done;
 347 
 348 
 349         /* open file table */
 350         mutex_enter(&p->p_lock);
 351         vroot = PTOU(p)->u_rdir;
 352         if (vroot == NULL)
 353                 vroot = rootdir;
 354 
 355         VN_HOLD(vroot);
 356         mutex_exit(&p->p_lock);
 357 
 358         fip = P_FINFO(p);
 359 
 360         for (fd = 0; fd < fip->fi_nfiles; fd++) {
 361                 uf_entry_t *ufp;
 362                 vnode_t *fvp;
 363                 struct file *fp;
 364                 vattr_t vattr;
 365                 prfdinfo_core_t fdinfo;
 366 
 367                 bzero(&fdinfo, sizeof (fdinfo));
 368 
 369                 mutex_enter(&fip->fi_lock);
 370                 UF_ENTER(ufp, fip, fd);
 371                 if (((fp = ufp->uf_file) == NULL) || (fp->f_count < 1)) {
 372                         UF_EXIT(ufp);
 373                         mutex_exit(&fip->fi_lock);
 374                         continue;
 375                 }
 376