Lines Matching refs:de
241 struct devfs_dirent *de; in devfs_usecount_add() local
251 de = vp->v_data; in devfs_usecount_add()
253 MPASS(de != NULL); in devfs_usecount_add()
256 de->de_usecount++; in devfs_usecount_add()
265 struct devfs_dirent *de; in devfs_usecount_subl() local
272 de = vp->v_data; in devfs_usecount_subl()
274 if (de == NULL) in devfs_usecount_subl()
277 MPASS(de->de_usecount == 0); in devfs_usecount_subl()
280 if (dev->si_usecount < de->de_usecount) in devfs_usecount_subl()
283 __func__, dev, dev->si_usecount, de->de_usecount); in devfs_usecount_subl()
285 dev->si_usecount -= de->de_usecount; in devfs_usecount_subl()
286 de->de_usecount = 0; in devfs_usecount_subl()
288 if (de->de_usecount == 0) in devfs_usecount_subl()
292 de->de_usecount--; in devfs_usecount_subl()
353 struct devfs_dirent *de; in devfs_populate_vp() local
387 de = vp->v_data; in devfs_populate_vp()
388 KASSERT(de != NULL, in devfs_populate_vp()
390 if ((de->de_flags & DE_DOOMED) != 0) { in devfs_populate_vp()
406 struct devfs_dirent *dd, *de; in devfs_vptocnp() local
435 de = devfs_parent_dirent(dd); in devfs_vptocnp()
436 if (de == NULL) { in devfs_vptocnp()
441 *dvp = de->de_vnode; in devfs_vptocnp()
467 struct devfs_dirent *de; in devfs_fqpn() local
479 de = dd; in devfs_fqpn()
480 while (de != dmp->dm_rootdir) { in devfs_fqpn()
487 i -= de->de_dirent->d_namlen; in devfs_fqpn()
490 bcopy(de->de_dirent->d_name, buf + i, in devfs_fqpn()
491 de->de_dirent->d_namlen); in devfs_fqpn()
492 de = devfs_parent_dirent(de); in devfs_fqpn()
493 if (de == NULL) in devfs_fqpn()
501 struct devfs_dirent *de) in devfs_allocv_drop_refs() argument
506 if (de->de_flags & DE_DOOMED) in devfs_allocv_drop_refs()
508 if (DEVFS_DE_DROP(de)) { in devfs_allocv_drop_refs()
510 devfs_dirent_free(de); in devfs_allocv_drop_refs()
529 devfs_allocv(struct devfs_dirent *de, struct mount *mp, int lockmode, in devfs_allocv() argument
540 if (de->de_flags & DE_DOOMED) { in devfs_allocv()
545 DEVFS_DE_HOLD(de); in devfs_allocv()
548 vp = de->de_vnode; in devfs_allocv()
555 if (devfs_allocv_drop_refs(0, dmp, de)) { in devfs_allocv()
560 if (de->de_vnode == vp) { in devfs_allocv()
561 de->de_vnode = NULL; in devfs_allocv()
573 if (de->de_dirent->d_type == DT_CHR) { in devfs_allocv()
574 if (!(de->de_cdp->cdp_flags & CDP_ACTIVE)) { in devfs_allocv()
575 devfs_allocv_drop_refs(1, dmp, de); in devfs_allocv()
578 dev = &de->de_cdp->cdp_c; in devfs_allocv()
584 devfs_allocv_drop_refs(1, dmp, de); in devfs_allocv()
589 if (de->de_dirent->d_type == DT_CHR) { in devfs_allocv()
606 } else if (de->de_dirent->d_type == DT_DIR) { in devfs_allocv()
608 } else if (de->de_dirent->d_type == DT_LNK) { in devfs_allocv()
616 vp->v_data = de; in devfs_allocv()
617 de->de_vnode = vp; in devfs_allocv()
623 de->de_vnode = NULL; in devfs_allocv()
627 (void) devfs_allocv_drop_refs(1, dmp, de); in devfs_allocv()
630 if (devfs_allocv_drop_refs(0, dmp, de)) { in devfs_allocv()
636 mac_devfs_vnode_associate(mp, de, vp); in devfs_allocv()
648 struct devfs_dirent *de; in devfs_access() local
652 de = vp->v_data; in devfs_access()
654 de = de->de_dir; in devfs_access()
656 error = vaccess(vp->v_type, de->de_mode, de->de_uid, de->de_gid, in devfs_access()
669 if (p->p_session->s_ttydp == de->de_cdp) in devfs_access()
686 struct devfs_dirent *de = vp->v_data; in devfs_close() local
705 if (de->de_usecount == 2 && td != NULL) { in devfs_close()
802 struct devfs_dirent *de; in devfs_getattr() local
815 de = vp->v_data; in devfs_getattr()
816 KASSERT(de != NULL, ("Null dirent in devfs_getattr vp=%p", vp)); in devfs_getattr()
818 de = de->de_dir; in devfs_getattr()
819 KASSERT(de != NULL, in devfs_getattr()
822 vap->va_uid = de->de_uid; in devfs_getattr()
823 vap->va_gid = de->de_gid; in devfs_getattr()
824 vap->va_mode = de->de_mode; in devfs_getattr()
826 vap->va_size = strlen(de->de_symlink); in devfs_getattr()
846 fix(de->de_atime); in devfs_getattr()
847 vap->va_atime = de->de_atime; in devfs_getattr()
848 fix(de->de_mtime); in devfs_getattr()
849 vap->va_mtime = de->de_mtime; in devfs_getattr()
850 fix(de->de_ctime); in devfs_getattr()
851 vap->va_ctime = de->de_ctime; in devfs_getattr()
866 vap->va_nlink = de->de_links; in devfs_getattr()
867 vap->va_fileid = de->de_inode; in devfs_getattr()
1010 devfs_prison_check(struct devfs_dirent *de, struct thread *td) in devfs_prison_check() argument
1017 cdp = de->de_cdp; in devfs_prison_check()
1046 struct devfs_dirent *de, *dd; in devfs_lookupx() local
1090 de = devfs_parent_dirent(dd); in devfs_lookupx()
1091 if (de == NULL) in devfs_lookupx()
1095 error = devfs_allocv(de, mp, cnp->cn_lkflags & LK_TYPE_MASK, in devfs_lookupx()
1103 de = devfs_find(dd, cnp->cn_nameptr, cnp->cn_namelen, 0); in devfs_lookupx()
1104 while (de == NULL) { /* While(...) so we can use break */ in devfs_lookupx()
1151 de = *dde; in devfs_lookupx()
1157 if (de == NULL || de->de_flags & DE_WHITEOUT) { in devfs_lookupx()
1165 if (devfs_prison_check(de, td)) in devfs_lookupx()
1178 error = devfs_allocv(de, mp, cnp->cn_lkflags & LK_TYPE_MASK, vpp); in devfs_lookupx()
1206 struct devfs_dirent *dd, *de; in devfs_mknod() local
1225 TAILQ_FOREACH(de, &dd->de_dlist, de_list) { in devfs_mknod()
1226 if (cnp->cn_namelen != de->de_dirent->d_namlen) in devfs_mknod()
1228 if (de->de_dirent->d_type == DT_CHR && in devfs_mknod()
1229 (de->de_cdp->cdp_flags & CDP_ACTIVE) == 0) in devfs_mknod()
1231 if (bcmp(cnp->cn_nameptr, de->de_dirent->d_name, in devfs_mknod()
1232 de->de_dirent->d_namlen) != 0) in devfs_mknod()
1234 if (de->de_flags & DE_WHITEOUT) in devfs_mknod()
1238 if (de == NULL) in devfs_mknod()
1240 de->de_flags &= ~DE_WHITEOUT; in devfs_mknod()
1241 error = devfs_allocv(de, dvp->v_mount, LK_EXCLUSIVE, vpp); in devfs_mknod()
1449 struct devfs_dirent *de; in devfs_readdir() local
1484 de = ap->a_vp->v_data; in devfs_readdir()
1487 TAILQ_FOREACH(dd, &de->de_dlist, de_list) { in devfs_readdir()
1494 de = dd->de_dir; in devfs_readdir()
1496 de = dd; in devfs_readdir()
1506 dp->d_fileno = de->de_inode; in devfs_readdir()
1534 struct devfs_dirent *de; in devfs_readlink() local
1536 de = ap->a_vp->v_data; in devfs_readlink()
1537 return (uiomove(de->de_symlink, strlen(de->de_symlink), ap->a_uio)); in devfs_readlink()
1543 struct devfs_dirent *de; in devfs_reclaiml() local
1546 de = vp->v_data; in devfs_reclaiml()
1547 if (de != NULL) { in devfs_reclaiml()
1548 MPASS(de->de_usecount == 0); in devfs_reclaiml()
1549 de->de_vnode = NULL; in devfs_reclaiml()
1596 struct devfs_dirent *de, *de_covered; in devfs_remove() local
1604 de = vp->v_data; in devfs_remove()
1605 if (de->de_cdp == NULL) { in devfs_remove()
1606 TAILQ_REMOVE(&dd->de_dlist, de, de_list); in devfs_remove()
1607 if (de->de_dirent->d_type == DT_LNK) { in devfs_remove()
1608 de_covered = devfs_find(dd, de->de_dirent->d_name, in devfs_remove()
1609 de->de_dirent->d_namlen, 0); in devfs_remove()
1617 devfs_delete(dmp, de, 0); in devfs_remove()
1623 de->de_flags |= DE_WHITEOUT; in devfs_remove()
1641 struct devfs_dirent *de; in devfs_revoke() local
1665 de = cdp->cdp_dirents[i]; in devfs_revoke()
1666 if (de == NULL) in devfs_revoke()
1669 vp2 = de->de_vnode; in devfs_revoke()
1747 struct devfs_dirent *de; in devfs_setattr() local
1774 de = vp->v_data; in devfs_setattr()
1776 de = de->de_dir; in devfs_setattr()
1780 uid = de->de_uid; in devfs_setattr()
1784 gid = de->de_gid; in devfs_setattr()
1787 if (uid != de->de_uid || gid != de->de_gid) { in devfs_setattr()
1788 if ((ap->a_cred->cr_uid != de->de_uid) || uid != de->de_uid || in devfs_setattr()
1789 (gid != de->de_gid && !groupmember(gid, ap->a_cred))) { in devfs_setattr()
1794 de->de_uid = uid; in devfs_setattr()
1795 de->de_gid = gid; in devfs_setattr()
1800 if (ap->a_cred->cr_uid != de->de_uid) { in devfs_setattr()
1805 de->de_mode = vap->va_mode; in devfs_setattr()
1817 de->de_atime = vap->va_atime; in devfs_setattr()
1823 de->de_mtime = vap->va_mtime; in devfs_setattr()
1832 vfs_timestamp(&de->de_mtime); in devfs_setattr()
1845 struct devfs_dirent *de; in devfs_setlabel() local
1848 de = vp->v_data; in devfs_setlabel()
1851 mac_devfs_update(vp->v_mount, de, vp); in devfs_setlabel()
1869 struct devfs_dirent *de, *de_covered, *de_dotdot; in devfs_symlink() local
1880 de = devfs_newdirent(ap->a_cnp->cn_nameptr, ap->a_cnp->cn_namelen); in devfs_symlink()
1881 de->de_flags = DE_USER; in devfs_symlink()
1882 de->de_uid = 0; in devfs_symlink()
1883 de->de_gid = 0; in devfs_symlink()
1884 de->de_mode = 0755; in devfs_symlink()
1885 de->de_inode = alloc_unr(devfs_inos); in devfs_symlink()
1886 de->de_dir = dd; in devfs_symlink()
1887 de->de_dirent->d_type = DT_LNK; in devfs_symlink()
1889 de->de_symlink = malloc(i, M_DEVFS, M_WAITOK); in devfs_symlink()
1890 bcopy(ap->a_target, de->de_symlink, i); in devfs_symlink()
1892 mac_devfs_create_symlink(ap->a_cnp->cn_cred, dmp->dm_mount, dd, de); in devfs_symlink()
1894 de_covered = devfs_find(dd, de->de_dirent->d_name, in devfs_symlink()
1895 de->de_dirent->d_namlen, 0); in devfs_symlink()
1898 devfs_delete(dmp, de, DEVFS_DEL_NORECURSE); in devfs_symlink()
1909 TAILQ_INSERT_AFTER(&dd->de_dlist, de_dotdot, de, de_list); in devfs_symlink()
1911 devfs_rules_apply(dmp, de); in devfs_symlink()
1913 return (devfs_allocv(de, ap->a_dvp->v_mount, LK_EXCLUSIVE, ap->a_vpp)); in devfs_symlink()