Lines Matching refs:de
243 struct devfs_dirent *de; in devfs_usecount_add() local
253 de = vp->v_data; in devfs_usecount_add()
255 MPASS(de != NULL); in devfs_usecount_add()
258 de->de_usecount++; in devfs_usecount_add()
267 struct devfs_dirent *de; in devfs_usecount_subl() local
274 de = vp->v_data; in devfs_usecount_subl()
276 if (de == NULL) in devfs_usecount_subl()
279 MPASS(de->de_usecount == 0); in devfs_usecount_subl()
282 if (dev->si_usecount < de->de_usecount) in devfs_usecount_subl()
285 __func__, dev, dev->si_usecount, de->de_usecount); in devfs_usecount_subl()
287 dev->si_usecount -= de->de_usecount; in devfs_usecount_subl()
288 de->de_usecount = 0; in devfs_usecount_subl()
290 if (de->de_usecount == 0) in devfs_usecount_subl()
294 de->de_usecount--; in devfs_usecount_subl()
355 struct devfs_dirent *de; in devfs_populate_vp() local
389 de = vp->v_data; in devfs_populate_vp()
390 KASSERT(de != NULL, in devfs_populate_vp()
392 if ((de->de_flags & DE_DOOMED) != 0) { in devfs_populate_vp()
408 struct devfs_dirent *dd, *de; in devfs_vptocnp() local
437 de = devfs_parent_dirent(dd); in devfs_vptocnp()
438 if (de == NULL) { in devfs_vptocnp()
443 *dvp = de->de_vnode; in devfs_vptocnp()
469 struct devfs_dirent *de; in devfs_fqpn() local
481 de = dd; in devfs_fqpn()
482 while (de != dmp->dm_rootdir) { in devfs_fqpn()
489 i -= de->de_dirent->d_namlen; in devfs_fqpn()
492 bcopy(de->de_dirent->d_name, buf + i, in devfs_fqpn()
493 de->de_dirent->d_namlen); in devfs_fqpn()
494 de = devfs_parent_dirent(de); in devfs_fqpn()
495 if (de == NULL) in devfs_fqpn()
503 struct devfs_dirent *de) in devfs_allocv_drop_refs() argument
508 if (de->de_flags & DE_DOOMED) in devfs_allocv_drop_refs()
510 if (DEVFS_DE_DROP(de)) { in devfs_allocv_drop_refs()
512 devfs_dirent_free(de); in devfs_allocv_drop_refs()
531 devfs_allocv(struct devfs_dirent *de, struct mount *mp, int lockmode, in devfs_allocv() argument
542 if (de->de_flags & DE_DOOMED) { in devfs_allocv()
547 DEVFS_DE_HOLD(de); in devfs_allocv()
550 vp = de->de_vnode; in devfs_allocv()
557 if (devfs_allocv_drop_refs(0, dmp, de)) { in devfs_allocv()
562 if (de->de_vnode == vp) { in devfs_allocv()
563 de->de_vnode = NULL; in devfs_allocv()
575 if (de->de_dirent->d_type == DT_CHR) { in devfs_allocv()
576 if (!(de->de_cdp->cdp_flags & CDP_ACTIVE)) { in devfs_allocv()
577 devfs_allocv_drop_refs(1, dmp, de); in devfs_allocv()
580 dev = &de->de_cdp->cdp_c; in devfs_allocv()
586 devfs_allocv_drop_refs(1, dmp, de); in devfs_allocv()
591 if (de->de_dirent->d_type == DT_CHR) { in devfs_allocv()
608 } else if (de->de_dirent->d_type == DT_DIR) { in devfs_allocv()
610 } else if (de->de_dirent->d_type == DT_LNK) { in devfs_allocv()
618 vp->v_data = de; in devfs_allocv()
619 de->de_vnode = vp; in devfs_allocv()
625 de->de_vnode = NULL; in devfs_allocv()
629 (void) devfs_allocv_drop_refs(1, dmp, de); in devfs_allocv()
632 if (devfs_allocv_drop_refs(0, dmp, de)) { in devfs_allocv()
638 mac_devfs_vnode_associate(mp, de, vp); in devfs_allocv()
650 struct devfs_dirent *de; in devfs_access() local
654 de = vp->v_data; in devfs_access()
656 de = de->de_dir; in devfs_access()
658 error = vaccess(vp->v_type, de->de_mode, de->de_uid, de->de_gid, in devfs_access()
671 if (p->p_session->s_ttydp == de->de_cdp) in devfs_access()
688 struct devfs_dirent *de = vp->v_data; in devfs_close() local
707 if (de->de_usecount == 2 && td != NULL) { in devfs_close()
804 struct devfs_dirent *de; in devfs_getattr() local
817 de = vp->v_data; in devfs_getattr()
818 KASSERT(de != NULL, ("Null dirent in devfs_getattr vp=%p", vp)); in devfs_getattr()
820 de = de->de_dir; in devfs_getattr()
821 KASSERT(de != NULL, in devfs_getattr()
824 vap->va_uid = de->de_uid; in devfs_getattr()
825 vap->va_gid = de->de_gid; in devfs_getattr()
826 vap->va_mode = de->de_mode; in devfs_getattr()
828 vap->va_size = strlen(de->de_symlink); in devfs_getattr()
848 fix(de->de_atime); in devfs_getattr()
849 vap->va_atime = de->de_atime; in devfs_getattr()
850 fix(de->de_mtime); in devfs_getattr()
851 vap->va_mtime = de->de_mtime; in devfs_getattr()
852 fix(de->de_ctime); in devfs_getattr()
853 vap->va_ctime = de->de_ctime; in devfs_getattr()
868 vap->va_nlink = de->de_links; in devfs_getattr()
869 vap->va_fileid = de->de_inode; in devfs_getattr()
1012 devfs_prison_check(struct devfs_dirent *de, struct thread *td) in devfs_prison_check() argument
1019 cdp = de->de_cdp; in devfs_prison_check()
1048 struct devfs_dirent *de, *dd; in devfs_lookupx() local
1092 de = devfs_parent_dirent(dd); in devfs_lookupx()
1093 if (de == NULL) in devfs_lookupx()
1097 error = devfs_allocv(de, mp, cnp->cn_lkflags & LK_TYPE_MASK, in devfs_lookupx()
1105 de = devfs_find(dd, cnp->cn_nameptr, cnp->cn_namelen, 0); in devfs_lookupx()
1106 while (de == NULL) { /* While(...) so we can use break */ in devfs_lookupx()
1153 de = *dde; in devfs_lookupx()
1159 if (de == NULL || de->de_flags & DE_WHITEOUT) { in devfs_lookupx()
1167 if (devfs_prison_check(de, td)) in devfs_lookupx()
1180 error = devfs_allocv(de, mp, cnp->cn_lkflags & LK_TYPE_MASK, vpp); in devfs_lookupx()
1208 struct devfs_dirent *dd, *de; in devfs_mknod() local
1227 TAILQ_FOREACH(de, &dd->de_dlist, de_list) { in devfs_mknod()
1228 if (cnp->cn_namelen != de->de_dirent->d_namlen) in devfs_mknod()
1230 if (de->de_dirent->d_type == DT_CHR && in devfs_mknod()
1231 (de->de_cdp->cdp_flags & CDP_ACTIVE) == 0) in devfs_mknod()
1233 if (bcmp(cnp->cn_nameptr, de->de_dirent->d_name, in devfs_mknod()
1234 de->de_dirent->d_namlen) != 0) in devfs_mknod()
1236 if (de->de_flags & DE_WHITEOUT) in devfs_mknod()
1240 if (de == NULL) in devfs_mknod()
1242 de->de_flags &= ~DE_WHITEOUT; in devfs_mknod()
1243 error = devfs_allocv(de, dvp->v_mount, LK_EXCLUSIVE, vpp); in devfs_mknod()
1451 struct devfs_dirent *de; in devfs_readdir() local
1485 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()
1501 dp->d_fileno = de->de_inode; in devfs_readdir()
1527 struct devfs_dirent *de; in devfs_readlink() local
1529 de = ap->a_vp->v_data; in devfs_readlink()
1530 return (uiomove(de->de_symlink, strlen(de->de_symlink), ap->a_uio)); in devfs_readlink()
1536 struct devfs_dirent *de; in devfs_reclaiml() local
1539 de = vp->v_data; in devfs_reclaiml()
1540 if (de != NULL) { in devfs_reclaiml()
1541 MPASS(de->de_usecount == 0); in devfs_reclaiml()
1542 de->de_vnode = NULL; in devfs_reclaiml()
1589 struct devfs_dirent *de, *de_covered; in devfs_remove() local
1597 de = vp->v_data; in devfs_remove()
1598 if (de->de_cdp == NULL) { in devfs_remove()
1599 TAILQ_REMOVE(&dd->de_dlist, de, de_list); in devfs_remove()
1600 if (de->de_dirent->d_type == DT_LNK) { in devfs_remove()
1601 de_covered = devfs_find(dd, de->de_dirent->d_name, in devfs_remove()
1602 de->de_dirent->d_namlen, 0); in devfs_remove()
1610 devfs_delete(dmp, de, 0); in devfs_remove()
1616 de->de_flags |= DE_WHITEOUT; in devfs_remove()
1634 struct devfs_dirent *de; in devfs_revoke() local
1658 de = cdp->cdp_dirents[i]; in devfs_revoke()
1659 if (de == NULL) in devfs_revoke()
1662 vp2 = de->de_vnode; in devfs_revoke()
1740 struct devfs_dirent *de; in devfs_setattr() local
1767 de = vp->v_data; in devfs_setattr()
1769 de = de->de_dir; in devfs_setattr()
1773 uid = de->de_uid; in devfs_setattr()
1777 gid = de->de_gid; in devfs_setattr()
1780 if (uid != de->de_uid || gid != de->de_gid) { in devfs_setattr()
1781 if ((ap->a_cred->cr_uid != de->de_uid) || uid != de->de_uid || in devfs_setattr()
1782 (gid != de->de_gid && !groupmember(gid, ap->a_cred))) { in devfs_setattr()
1787 de->de_uid = uid; in devfs_setattr()
1788 de->de_gid = gid; in devfs_setattr()
1793 if (ap->a_cred->cr_uid != de->de_uid) { in devfs_setattr()
1798 de->de_mode = vap->va_mode; in devfs_setattr()
1810 de->de_atime = vap->va_atime; in devfs_setattr()
1816 de->de_mtime = vap->va_mtime; in devfs_setattr()
1825 vfs_timestamp(&de->de_mtime); in devfs_setattr()
1838 struct devfs_dirent *de; in devfs_setlabel() local
1841 de = vp->v_data; in devfs_setlabel()
1844 mac_devfs_update(vp->v_mount, de, vp); in devfs_setlabel()
1862 struct devfs_dirent *de, *de_covered, *de_dotdot; in devfs_symlink() local
1873 de = devfs_newdirent(ap->a_cnp->cn_nameptr, ap->a_cnp->cn_namelen); in devfs_symlink()
1874 de->de_flags = DE_USER; in devfs_symlink()
1875 de->de_uid = 0; in devfs_symlink()
1876 de->de_gid = 0; in devfs_symlink()
1877 de->de_mode = 0755; in devfs_symlink()
1878 de->de_inode = alloc_unr(devfs_inos); in devfs_symlink()
1879 de->de_dir = dd; in devfs_symlink()
1880 de->de_dirent->d_type = DT_LNK; in devfs_symlink()
1882 de->de_symlink = malloc(i, M_DEVFS, M_WAITOK); in devfs_symlink()
1883 bcopy(ap->a_target, de->de_symlink, i); in devfs_symlink()
1885 mac_devfs_create_symlink(ap->a_cnp->cn_cred, dmp->dm_mount, dd, de); in devfs_symlink()
1887 de_covered = devfs_find(dd, de->de_dirent->d_name, in devfs_symlink()
1888 de->de_dirent->d_namlen, 0); in devfs_symlink()
1891 devfs_delete(dmp, de, DEVFS_DEL_NORECURSE); in devfs_symlink()
1902 TAILQ_INSERT_AFTER(&dd->de_dlist, de_dotdot, de, de_list); in devfs_symlink()
1904 devfs_rules_apply(dmp, de); in devfs_symlink()
1906 return (devfs_allocv(de, ap->a_dvp->v_mount, LK_EXCLUSIVE, ap->a_vpp)); in devfs_symlink()