Lines Matching refs:de
230 struct devfs_dirent *de; in devfs_populate_vp() local
258 de = vp->v_data; in devfs_populate_vp()
259 KASSERT(de != NULL, in devfs_populate_vp()
261 if ((de->de_flags & DE_DOOMED) != 0) { in devfs_populate_vp()
277 struct devfs_dirent *dd, *de; in devfs_vptocnp() local
297 de = dd->de_dir; in devfs_vptocnp()
311 de = dd; in devfs_vptocnp()
317 de = devfs_parent_dirent(de); in devfs_vptocnp()
318 if (de == NULL) { in devfs_vptocnp()
323 *dvp = de->de_vnode; in devfs_vptocnp()
349 struct devfs_dirent *de; in devfs_fqpn() local
361 de = dd; in devfs_fqpn()
362 while (de != dmp->dm_rootdir) { in devfs_fqpn()
369 i -= de->de_dirent->d_namlen; in devfs_fqpn()
372 bcopy(de->de_dirent->d_name, buf + i, in devfs_fqpn()
373 de->de_dirent->d_namlen); in devfs_fqpn()
374 de = devfs_parent_dirent(de); in devfs_fqpn()
375 if (de == NULL) in devfs_fqpn()
383 struct devfs_dirent *de) in devfs_allocv_drop_refs() argument
388 if (de->de_flags & DE_DOOMED) in devfs_allocv_drop_refs()
390 if (DEVFS_DE_DROP(de)) { in devfs_allocv_drop_refs()
392 devfs_dirent_free(de); in devfs_allocv_drop_refs()
409 struct devfs_dirent *de; in devfs_insmntque_dtr() local
411 de = (struct devfs_dirent *)arg; in devfs_insmntque_dtr()
414 de->de_vnode = NULL; in devfs_insmntque_dtr()
425 devfs_allocv(struct devfs_dirent *de, struct mount *mp, int lockmode, in devfs_allocv() argument
435 if (de->de_flags & DE_DOOMED) { in devfs_allocv()
440 DEVFS_DE_HOLD(de); in devfs_allocv()
443 vp = de->de_vnode; in devfs_allocv()
450 if (devfs_allocv_drop_refs(0, dmp, de)) { in devfs_allocv()
456 if (de->de_vnode == vp) { in devfs_allocv()
457 de->de_vnode = NULL; in devfs_allocv()
469 if (de->de_dirent->d_type == DT_CHR) { in devfs_allocv()
470 if (!(de->de_cdp->cdp_flags & CDP_ACTIVE)) { in devfs_allocv()
471 devfs_allocv_drop_refs(1, dmp, de); in devfs_allocv()
474 dev = &de->de_cdp->cdp_c; in devfs_allocv()
480 devfs_allocv_drop_refs(1, dmp, de); in devfs_allocv()
485 if (de->de_dirent->d_type == DT_CHR) { in devfs_allocv()
504 } else if (de->de_dirent->d_type == DT_DIR) { in devfs_allocv()
506 } else if (de->de_dirent->d_type == DT_LNK) { in devfs_allocv()
514 vp->v_data = de; in devfs_allocv()
515 de->de_vnode = vp; in devfs_allocv()
517 error = insmntque1(vp, mp, devfs_insmntque_dtr, de); in devfs_allocv()
519 (void) devfs_allocv_drop_refs(1, dmp, de); in devfs_allocv()
522 if (devfs_allocv_drop_refs(0, dmp, de)) { in devfs_allocv()
527 mac_devfs_vnode_associate(mp, de, vp); in devfs_allocv()
538 struct devfs_dirent *de; in devfs_access() local
542 de = vp->v_data; in devfs_access()
544 de = de->de_dir; in devfs_access()
546 error = vaccess(vp->v_type, de->de_mode, de->de_uid, de->de_gid, in devfs_access()
559 if (p->p_session->s_ttydp == de->de_cdp) in devfs_access()
687 struct devfs_dirent *de; in devfs_getattr() local
700 de = vp->v_data; in devfs_getattr()
701 KASSERT(de != NULL, ("Null dirent in devfs_getattr vp=%p", vp)); in devfs_getattr()
703 de = de->de_dir; in devfs_getattr()
704 KASSERT(de != NULL, in devfs_getattr()
707 vap->va_uid = de->de_uid; in devfs_getattr()
708 vap->va_gid = de->de_gid; in devfs_getattr()
709 vap->va_mode = de->de_mode; in devfs_getattr()
711 vap->va_size = strlen(de->de_symlink); in devfs_getattr()
731 fix(de->de_atime); in devfs_getattr()
732 vap->va_atime = de->de_atime; in devfs_getattr()
733 fix(de->de_mtime); in devfs_getattr()
734 vap->va_mtime = de->de_mtime; in devfs_getattr()
735 fix(de->de_ctime); in devfs_getattr()
736 vap->va_ctime = de->de_ctime; in devfs_getattr()
751 vap->va_nlink = de->de_links; in devfs_getattr()
752 vap->va_fileid = de->de_inode; in devfs_getattr()
861 devfs_prison_check(struct devfs_dirent *de, struct thread *td) in devfs_prison_check() argument
868 cdp = de->de_cdp; in devfs_prison_check()
897 struct devfs_dirent *de, *dd; in devfs_lookupx() local
941 de = devfs_parent_dirent(dd); in devfs_lookupx()
942 if (de == NULL) in devfs_lookupx()
946 error = devfs_allocv(de, mp, cnp->cn_lkflags & LK_TYPE_MASK, in devfs_lookupx()
954 de = devfs_find(dd, cnp->cn_nameptr, cnp->cn_namelen, 0); in devfs_lookupx()
955 while (de == NULL) { /* While(...) so we can use break */ in devfs_lookupx()
1004 de = *dde; in devfs_lookupx()
1010 if (de == NULL || de->de_flags & DE_WHITEOUT) { in devfs_lookupx()
1019 if (devfs_prison_check(de, td)) in devfs_lookupx()
1032 error = devfs_allocv(de, mp, cnp->cn_lkflags & LK_TYPE_MASK, vpp); in devfs_lookupx()
1060 struct devfs_dirent *dd, *de; in devfs_mknod() local
1079 TAILQ_FOREACH(de, &dd->de_dlist, de_list) { in devfs_mknod()
1080 if (cnp->cn_namelen != de->de_dirent->d_namlen) in devfs_mknod()
1082 if (de->de_dirent->d_type == DT_CHR && in devfs_mknod()
1083 (de->de_cdp->cdp_flags & CDP_ACTIVE) == 0) in devfs_mknod()
1085 if (bcmp(cnp->cn_nameptr, de->de_dirent->d_name, in devfs_mknod()
1086 de->de_dirent->d_namlen) != 0) in devfs_mknod()
1088 if (de->de_flags & DE_WHITEOUT) in devfs_mknod()
1092 if (de == NULL) in devfs_mknod()
1094 de->de_flags &= ~DE_WHITEOUT; in devfs_mknod()
1095 error = devfs_allocv(de, dvp->v_mount, LK_EXCLUSIVE, vpp); in devfs_mknod()
1308 struct devfs_dirent *de; in devfs_readdir() local
1342 de = ap->a_vp->v_data; in devfs_readdir()
1344 TAILQ_FOREACH(dd, &de->de_dlist, de_list) { in devfs_readdir()
1351 de = dd->de_dir; in devfs_readdir()
1353 de = dd; in devfs_readdir()
1358 dp->d_fileno = de->de_inode; in devfs_readdir()
1384 struct devfs_dirent *de; in devfs_readlink() local
1386 de = ap->a_vp->v_data; in devfs_readlink()
1387 return (uiomove(de->de_symlink, strlen(de->de_symlink), ap->a_uio)); in devfs_readlink()
1394 struct devfs_dirent *de; in devfs_reclaim() local
1398 de = vp->v_data; in devfs_reclaim()
1399 if (de != NULL) { in devfs_reclaim()
1400 de->de_vnode = NULL; in devfs_reclaim()
1438 struct devfs_dirent *de, *de_covered; in devfs_remove() local
1446 de = vp->v_data; in devfs_remove()
1447 if (de->de_cdp == NULL) { in devfs_remove()
1448 TAILQ_REMOVE(&dd->de_dlist, de, de_list); in devfs_remove()
1449 if (de->de_dirent->d_type == DT_LNK) { in devfs_remove()
1450 de_covered = devfs_find(dd, de->de_dirent->d_name, in devfs_remove()
1451 de->de_dirent->d_namlen, 0); in devfs_remove()
1459 devfs_delete(dmp, de, 0); in devfs_remove()
1465 de->de_flags |= DE_WHITEOUT; in devfs_remove()
1483 struct devfs_dirent *de; in devfs_revoke() local
1506 de = cdp->cdp_dirents[i]; in devfs_revoke()
1507 if (de == NULL) in devfs_revoke()
1510 vp2 = de->de_vnode; in devfs_revoke()
1585 struct devfs_dirent *de; in devfs_setattr() local
1612 de = vp->v_data; in devfs_setattr()
1614 de = de->de_dir; in devfs_setattr()
1618 uid = de->de_uid; in devfs_setattr()
1622 gid = de->de_gid; in devfs_setattr()
1625 if (uid != de->de_uid || gid != de->de_gid) { in devfs_setattr()
1626 if ((ap->a_cred->cr_uid != de->de_uid) || uid != de->de_uid || in devfs_setattr()
1627 (gid != de->de_gid && !groupmember(gid, ap->a_cred))) { in devfs_setattr()
1632 de->de_uid = uid; in devfs_setattr()
1633 de->de_gid = gid; in devfs_setattr()
1638 if (ap->a_cred->cr_uid != de->de_uid) { in devfs_setattr()
1643 de->de_mode = vap->va_mode; in devfs_setattr()
1655 de->de_atime = vap->va_atime; in devfs_setattr()
1661 de->de_mtime = vap->va_mtime; in devfs_setattr()
1670 vfs_timestamp(&de->de_mtime); in devfs_setattr()
1683 struct devfs_dirent *de; in devfs_setlabel() local
1686 de = vp->v_data; in devfs_setlabel()
1689 mac_devfs_update(vp->v_mount, de, vp); in devfs_setlabel()
1707 struct devfs_dirent *de, *de_covered, *de_dotdot; in devfs_symlink() local
1718 de = devfs_newdirent(ap->a_cnp->cn_nameptr, ap->a_cnp->cn_namelen); in devfs_symlink()
1719 de->de_flags = DE_USER; in devfs_symlink()
1720 de->de_uid = 0; in devfs_symlink()
1721 de->de_gid = 0; in devfs_symlink()
1722 de->de_mode = 0755; in devfs_symlink()
1723 de->de_inode = alloc_unr(devfs_inos); in devfs_symlink()
1724 de->de_dir = dd; in devfs_symlink()
1725 de->de_dirent->d_type = DT_LNK; in devfs_symlink()
1727 de->de_symlink = malloc(i, M_DEVFS, M_WAITOK); in devfs_symlink()
1728 bcopy(ap->a_target, de->de_symlink, i); in devfs_symlink()
1730 mac_devfs_create_symlink(ap->a_cnp->cn_cred, dmp->dm_mount, dd, de); in devfs_symlink()
1732 de_covered = devfs_find(dd, de->de_dirent->d_name, in devfs_symlink()
1733 de->de_dirent->d_namlen, 0); in devfs_symlink()
1736 devfs_delete(dmp, de, DEVFS_DEL_NORECURSE); in devfs_symlink()
1747 TAILQ_INSERT_AFTER(&dd->de_dlist, de_dotdot, de, de_list); in devfs_symlink()
1749 devfs_rules_apply(dmp, de); in devfs_symlink()
1751 return (devfs_allocv(de, ap->a_dvp->v_mount, LK_EXCLUSIVE, ap->a_vpp)); in devfs_symlink()