Lines Matching refs:dv

75 	struct dv_node	*dv = VTODV(*vpp);
77 dcmn_err2(("devfs_open %s\n", dv->dv_name));
91 struct dv_node *dv = VTODV(vp);
93 dcmn_err2(("devfs_close %s\n", dv->dv_name));
163 struct dv_node *dv = VTODV(vp);
171 dcmn_err2(("?devfs_getattr %s\n", dv->dv_name));
172 ASSERT(dv->dv_attr || dv->dv_attrvp);
180 rw_enter(&dv->dv_contents, RW_READER);
181 if (dv->dv_attr) {
188 *vap = *dv->dv_attr;
192 error = VOP_GETATTR(dv->dv_attrvp, vap, flags, cr, ct);
193 dsysdebug(error, ("vop_getattr %s %d\n", dv->dv_name, error));
194 dv_vattr_merge(dv, vap);
196 rw_exit(&dv->dv_contents);
218 struct dv_node *dv,
229 ASSERT(dv->dv_attr || dv->dv_attrvp);
232 ASSERT((dv->dv_flags & DV_NO_FSPERM) == 0);
238 rw_enter(&dv->dv_contents, RW_WRITER);
240 again: if (dv->dv_attr) {
243 dv->dv_attr, flags, devfs_unlocked_access, dv);
253 map = dv->dv_attr;
274 ASSERT(dv->dv_attrvp);
282 error = VOP_SETATTR(dv->dv_attrvp,
285 ("vop_setattr %s %d\n", dv->dv_name, error));
300 if (VOP_GETATTR(dv->dv_attrvp,
302 dv->dv_attr = kmem_alloc(
304 *dv->dv_attr = vattr;
305 dv_vattr_merge(dv, dv->dv_attr);
312 rw_exit(&dv->dv_contents);
344 struct dv_node *dv = VTODV(vp);
359 dcmn_err2(("?devfs_setattr %s\n", dv->dv_name));
360 ASSERT(dv->dv_attr || dv->dv_attrvp);
383 if (dv->dv_flags & DV_NO_FSPERM) {
384 ASSERT(dv->dv_attr);
389 rw_enter(&dv->dv_contents, RW_WRITER);
391 dv->dv_attr->va_atime = vap->va_atime;
393 dv->dv_attr->va_mtime = vap->va_mtime;
394 rw_exit(&dv->dv_contents);
403 ASSERT(dv->dv_attr || dv->dv_attrvp);
404 return (devfs_setattr_dir(dv, vp, vap, flags, cr));
413 rw_enter(&dv->dv_contents, RW_WRITER);
430 if (dev_minorperm(dv->dv_devi, dv->dv_name, &mp) != 0) {
434 if (dv->dv_flags & DV_DFLT_MODE) {
435 ASSERT((dv->dv_dflt_mode & ~S_IAMB) == 0);
437 mp.mp_mode |= dv->dv_dflt_mode;
439 dv->dv_name, mp.mp_mode));
442 dv->dv_name, mp.mp_mode));
446 dv->dv_name, mp.mp_mode));
453 if (dv->dv_attr) {
457 ASSERT(dv->dv_attrvp);
460 error = VOP_GETATTR(dv->dv_attrvp, vattrp, 0, cr, ct);
461 dsysdebug(error, ("vop_getattr %s %d\n", dv->dv_name, error));
464 dv->dv_attr = vattrp;
465 dv_vattr_merge(dv, dv->dv_attr);
469 error = secpolicy_vnode_setattr(cr, vp, vap, dv->dv_attr,
470 flags, devfs_unlocked_access, dv);
473 dv->dv_name, error));
482 map = dv->dv_attr;
511 ((dv->dv_flags & DV_ACL) == 0)) {
513 if (dv->dv_attrvp) {
514 ddv = dv->dv_dotdot;
517 dv->dv_name, cr, ct, 0);
520 ddv->dv_name, dv->dv_name, error));
524 VN_RELE(dv->dv_attrvp);
525 dv->dv_attrvp = NULL;
527 ASSERT(dv->dv_attr);
531 dv->dv_name, vap->va_mode));
534 dv->dv_name, vap->va_uid));
537 dv->dv_name, vap->va_gid));
539 if (dv->dv_attrvp == NULL) {
540 dvp = DVTOV(dv->dv_dotdot);
541 dv_shadow_node(dvp, dv->dv_name, vp,
545 if (dv->dv_attrvp) {
547 if (dv->dv_attr == map) {
551 error = VOP_SETATTR(dv->dv_attrvp, map,
555 error = VOP_SETATTR(dv->dv_attrvp,
559 dv->dv_name, error));
567 if (dv->dv_attr && dv->dv_attrvp && error == 0) {
568 vattrp = dv->dv_attr;
569 dv->dv_attr = NULL;
576 rw_exit(&dv->dv_contents);
595 * and we can't guarantee that the dv node
615 dvnode_t *dv = VTODV(vp);
619 dcmn_err2(("devfs_getsecattr %s\n", dv->dv_name));
622 rw_enter(&dv->dv_contents, RW_READER);
624 avp = dv->dv_attrvp;
629 rw_exit(&dv->dv_contents);
635 rw_exit(&dv->dv_contents);
649 dvnode_t *dv = VTODV(vp);
653 dcmn_err2(("devfs_setsecattr %s\n", dv->dv_name));
655 ASSERT(RW_LOCK_HELD(&dv->dv_contents));
661 if (dv->dv_flags & DV_NO_FSPERM)
667 if (dv->dv_attrvp == NULL) {
669 dv_shadow_node(DVTOV(dv->dv_dotdot), dv->dv_name, vp,
673 if ((avp = dv->dv_attrvp) == NULL) {
675 "cannot construct attribute node\n", dv->dv_name));
696 dv->dv_flags |= DV_ACL;
710 struct dv_node *dv = vdv;
712 uid_t owner = dv->dv_attr->va_uid;
717 if (groupmember(dv->dv_attr->va_gid, cr) == 0)
721 return (secpolicy_vnode_access2(cr, DVTOV(dv), owner,
722 dv->dv_attr->va_mode << shift, mode));
729 struct dv_node *dv = VTODV(vp);
732 dcmn_err2(("devfs_access %s\n", dv->dv_name));
733 ASSERT(dv->dv_attr || dv->dv_attrvp);
740 rw_enter(&dv->dv_contents, RW_READER);
741 if (dv->dv_attr && ((dv->dv_flags & DV_ACL) == 0)) {
742 res = devfs_unlocked_access(dv, mode, cr);
744 res = VOP_ACCESS(dv->dv_attrvp, mode, flags, cr, ct);
746 rw_exit(&dv->dv_contents);
865 struct dv_node *ddv, *dv;
910 dv = (struct dv_node *)-1;
953 for (dv = DV_FIRST_ENTRY(ddv); dv;
954 dv = DV_NEXT_ENTRY(ddv, dv), diroff++) {
963 if (dv->dv_devi && ndi_dev_is_hidden_node(dv->dv_devi))
971 if ((dv->dv_flags & DV_INTERNAL) && (cred != kcred))
974 reclen = DIRENT64_RECLEN(strlen(dv->dv_name));
978 diroff, soff, dv->dv_name, reclen));
981 de->d_ino = (ino64_t)dv->dv_ino;
987 ASSERT(strlen(dv->dv_name) + 1 <=
989 (void) strncpy(de->d_name, dv->dv_name,
996 dv->dv_name, reclen));
1001 "diroff %lld, soff %lld, dv %p\n",
1002 movesz, diroff, soff, (void *)dv));
1004 if ((movesz == 0) && dv)
1010 *eofp = dv ? 0 : 1;
1051 struct dv_node *dv = VTODV(vp);
1053 dcmn_err2(("devfs_inactive: %s\n", dv->dv_name));
1057 destroy = (DV_STALE(dv) && vp->v_count == 0);
1062 dv_destroy(dv, 0);
1073 struct dv_node *dv = VTODV(vp);
1084 dv_fid->dvfid_ino = dv->dv_ino;
1085 /* dv_fid->dvfid_gen = dv->tn_gen; XXX ? */