Lines Matching defs:de
241 struct devfs_dirent *de;
251 de = vp->v_data;
253 MPASS(de != NULL);
256 de->de_usecount++;
265 struct devfs_dirent *de;
272 de = vp->v_data;
274 if (de == NULL)
277 MPASS(de->de_usecount == 0);
280 if (dev->si_usecount < de->de_usecount)
283 __func__, dev, dev->si_usecount, de->de_usecount);
285 dev->si_usecount -= de->de_usecount;
286 de->de_usecount = 0;
288 if (de->de_usecount == 0)
292 de->de_usecount--;
353 struct devfs_dirent *de;
387 de = vp->v_data;
388 KASSERT(de != NULL,
390 if ((de->de_flags & DE_DOOMED) != 0) {
406 struct devfs_dirent *dd, *de;
435 de = devfs_parent_dirent(dd);
436 if (de == NULL) {
441 *dvp = de->de_vnode;
467 struct devfs_dirent *de;
479 de = dd;
480 while (de != dmp->dm_rootdir) {
487 i -= de->de_dirent->d_namlen;
490 bcopy(de->de_dirent->d_name, buf + i,
491 de->de_dirent->d_namlen);
492 de = devfs_parent_dirent(de);
493 if (de == NULL)
501 struct devfs_dirent *de)
506 if (de->de_flags & DE_DOOMED)
508 if (DEVFS_DE_DROP(de)) {
509 KASSERT(not_found == 1, ("DEVFS de dropped but not doomed"));
510 devfs_dirent_free(de);
529 devfs_allocv(struct devfs_dirent *de, struct mount *mp, int lockmode,
540 if (de->de_flags & DE_DOOMED) {
545 DEVFS_DE_HOLD(de);
548 vp = de->de_vnode;
555 if (devfs_allocv_drop_refs(0, dmp, de)) {
560 if (de->de_vnode == vp) {
561 de->de_vnode = NULL;
573 if (de->de_dirent->d_type == DT_CHR) {
574 if (!(de->de_cdp->cdp_flags & CDP_ACTIVE)) {
575 devfs_allocv_drop_refs(1, dmp, de);
578 dev = &de->de_cdp->cdp_c;
584 devfs_allocv_drop_refs(1, dmp, de);
589 if (de->de_dirent->d_type == DT_CHR) {
606 } else if (de->de_dirent->d_type == DT_DIR) {
608 } else if (de->de_dirent->d_type == DT_LNK) {
616 vp->v_data = de;
617 de->de_vnode = vp;
623 de->de_vnode = NULL;
627 (void) devfs_allocv_drop_refs(1, dmp, de);
630 if (devfs_allocv_drop_refs(0, dmp, de)) {
636 mac_devfs_vnode_associate(mp, de, vp);
648 struct devfs_dirent *de;
652 de = vp->v_data;
654 de = de->de_dir;
656 error = vaccess(vp->v_type, de->de_mode, de->de_uid, de->de_gid,
669 if (p->p_session->s_ttydp == de->de_cdp)
686 struct devfs_dirent *de = vp->v_data;
705 if (de->de_usecount == 2 && td != NULL) {
802 struct devfs_dirent *de;
815 de = vp->v_data;
816 KASSERT(de != NULL, ("Null dirent in devfs_getattr vp=%p", vp));
818 de = de->de_dir;
819 KASSERT(de != NULL,
822 vap->va_uid = de->de_uid;
823 vap->va_gid = de->de_gid;
824 vap->va_mode = de->de_mode;
826 vap->va_size = strlen(de->de_symlink);
846 fix(de->de_atime);
847 vap->va_atime = de->de_atime;
848 fix(de->de_mtime);
849 vap->va_mtime = de->de_mtime;
850 fix(de->de_ctime);
851 vap->va_ctime = de->de_ctime;
866 vap->va_nlink = de->de_links;
867 vap->va_fileid = de->de_inode;
1010 devfs_prison_check(struct devfs_dirent *de, struct thread *td)
1017 cdp = de->de_cdp;
1046 struct devfs_dirent *de, *dd;
1090 de = devfs_parent_dirent(dd);
1091 if (de == NULL)
1095 error = devfs_allocv(de, mp, cnp->cn_lkflags & LK_TYPE_MASK,
1103 de = devfs_find(dd, cnp->cn_nameptr, cnp->cn_namelen, 0);
1104 while (de == NULL) { /* While(...) so we can use break */
1151 de = *dde;
1157 if (de == NULL || de->de_flags & DE_WHITEOUT) {
1165 if (devfs_prison_check(de, td))
1178 error = devfs_allocv(de, mp, cnp->cn_lkflags & LK_TYPE_MASK, vpp);
1206 struct devfs_dirent *dd, *de;
1225 TAILQ_FOREACH(de, &dd->de_dlist, de_list) {
1226 if (cnp->cn_namelen != de->de_dirent->d_namlen)
1228 if (de->de_dirent->d_type == DT_CHR &&
1229 (de->de_cdp->cdp_flags & CDP_ACTIVE) == 0)
1231 if (bcmp(cnp->cn_nameptr, de->de_dirent->d_name,
1232 de->de_dirent->d_namlen) != 0)
1234 if (de->de_flags & DE_WHITEOUT)
1238 if (de == NULL)
1240 de->de_flags &= ~DE_WHITEOUT;
1241 error = devfs_allocv(de, dvp->v_mount, LK_EXCLUSIVE, vpp);
1449 struct devfs_dirent *de;
1483 de = ap->a_vp->v_data;
1485 TAILQ_FOREACH(dd, &de->de_dlist, de_list) {
1492 de = dd->de_dir;
1494 de = dd;
1499 dp->d_fileno = de->de_inode;
1525 struct devfs_dirent *de;
1527 de = ap->a_vp->v_data;
1528 return (uiomove(de->de_symlink, strlen(de->de_symlink), ap->a_uio));
1534 struct devfs_dirent *de;
1537 de = vp->v_data;
1538 if (de != NULL) {
1539 MPASS(de->de_usecount == 0);
1540 de->de_vnode = NULL;
1587 struct devfs_dirent *de, *de_covered;
1595 de = vp->v_data;
1596 if (de->de_cdp == NULL) {
1597 TAILQ_REMOVE(&dd->de_dlist, de, de_list);
1598 if (de->de_dirent->d_type == DT_LNK) {
1599 de_covered = devfs_find(dd, de->de_dirent->d_name,
1600 de->de_dirent->d_namlen, 0);
1608 devfs_delete(dmp, de, 0);
1614 de->de_flags |= DE_WHITEOUT;
1632 struct devfs_dirent *de;
1656 de = cdp->cdp_dirents[i];
1657 if (de == NULL)
1660 vp2 = de->de_vnode;
1738 struct devfs_dirent *de;
1765 de = vp->v_data;
1767 de = de->de_dir;
1771 uid = de->de_uid;
1775 gid = de->de_gid;
1778 if (uid != de->de_uid || gid != de->de_gid) {
1779 if ((ap->a_cred->cr_uid != de->de_uid) || uid != de->de_uid ||
1780 (gid != de->de_gid && !groupmember(gid, ap->a_cred))) {
1785 de->de_uid = uid;
1786 de->de_gid = gid;
1791 if (ap->a_cred->cr_uid != de->de_uid) {
1796 de->de_mode = vap->va_mode;
1808 de->de_atime = vap->va_atime;
1814 de->de_mtime = vap->va_mtime;
1823 vfs_timestamp(&de->de_mtime);
1836 struct devfs_dirent *de;
1839 de = vp->v_data;
1842 mac_devfs_update(vp->v_mount, de, vp);
1860 struct devfs_dirent *de, *de_covered, *de_dotdot;
1871 de = devfs_newdirent(ap->a_cnp->cn_nameptr, ap->a_cnp->cn_namelen);
1872 de->de_flags = DE_USER;
1873 de->de_uid = 0;
1874 de->de_gid = 0;
1875 de->de_mode = 0755;
1876 de->de_inode = alloc_unr(devfs_inos);
1877 de->de_dir = dd;
1878 de->de_dirent->d_type = DT_LNK;
1880 de->de_symlink = malloc(i, M_DEVFS, M_WAITOK);
1881 bcopy(ap->a_target, de->de_symlink, i);
1883 mac_devfs_create_symlink(ap->a_cnp->cn_cred, dmp->dm_mount, dd, de);
1885 de_covered = devfs_find(dd, de->de_dirent->d_name,
1886 de->de_dirent->d_namlen, 0);
1889 devfs_delete(dmp, de, DEVFS_DEL_NORECURSE);
1900 TAILQ_INSERT_AFTER(&dd->de_dlist, de_dotdot, de, de_list);
1902 devfs_rules_apply(dmp, de);
1904 return (devfs_allocv(de, ap->a_dvp->v_mount, LK_EXCLUSIVE, ap->a_vpp));