Lines Matching refs:de

228 	struct devfs_dirent *de;  in devfs_usecount_add()  local
238 de = vp->v_data; in devfs_usecount_add()
240 MPASS(de != NULL); in devfs_usecount_add()
243 de->de_usecount++; in devfs_usecount_add()
252 struct devfs_dirent *de; in devfs_usecount_subl() local
259 de = vp->v_data; in devfs_usecount_subl()
261 if (de == NULL) in devfs_usecount_subl()
264 MPASS(de->de_usecount == 0); in devfs_usecount_subl()
267 if (dev->si_usecount < de->de_usecount) in devfs_usecount_subl()
270 __func__, dev, dev->si_usecount, de->de_usecount); in devfs_usecount_subl()
272 dev->si_usecount -= de->de_usecount; in devfs_usecount_subl()
273 de->de_usecount = 0; in devfs_usecount_subl()
275 if (de->de_usecount == 0) in devfs_usecount_subl()
279 de->de_usecount--; in devfs_usecount_subl()
340 struct devfs_dirent *de; in devfs_populate_vp() local
374 de = vp->v_data; in devfs_populate_vp()
375 KASSERT(de != NULL, in devfs_populate_vp()
377 if ((de->de_flags & DE_DOOMED) != 0) { in devfs_populate_vp()
393 struct devfs_dirent *dd, *de; in devfs_vptocnp() local
422 de = devfs_parent_dirent(dd); in devfs_vptocnp()
423 if (de == NULL) { in devfs_vptocnp()
428 *dvp = de->de_vnode; in devfs_vptocnp()
454 struct devfs_dirent *de; in devfs_fqpn() local
466 de = dd; in devfs_fqpn()
467 while (de != dmp->dm_rootdir) { in devfs_fqpn()
474 i -= de->de_dirent->d_namlen; in devfs_fqpn()
477 bcopy(de->de_dirent->d_name, buf + i, in devfs_fqpn()
478 de->de_dirent->d_namlen); in devfs_fqpn()
479 de = devfs_parent_dirent(de); in devfs_fqpn()
480 if (de == NULL) in devfs_fqpn()
488 struct devfs_dirent *de) in devfs_allocv_drop_refs() argument
493 if (de->de_flags & DE_DOOMED) in devfs_allocv_drop_refs()
495 if (DEVFS_DE_DROP(de)) { in devfs_allocv_drop_refs()
497 devfs_dirent_free(de); in devfs_allocv_drop_refs()
514 struct devfs_dirent *de; in devfs_insmntque_dtr() local
516 de = (struct devfs_dirent *)arg; in devfs_insmntque_dtr()
519 de->de_vnode = NULL; in devfs_insmntque_dtr()
530 devfs_allocv(struct devfs_dirent *de, struct mount *mp, int lockmode, in devfs_allocv() argument
541 if (de->de_flags & DE_DOOMED) { in devfs_allocv()
546 DEVFS_DE_HOLD(de); in devfs_allocv()
549 vp = de->de_vnode; in devfs_allocv()
556 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()
621 error = insmntque1(vp, mp, devfs_insmntque_dtr, de); in devfs_allocv()
623 (void) devfs_allocv_drop_refs(1, dmp, de); in devfs_allocv()
626 if (devfs_allocv_drop_refs(0, dmp, de)) { in devfs_allocv()
631 mac_devfs_vnode_associate(mp, de, vp); in devfs_allocv()
642 struct devfs_dirent *de; in devfs_access() local
646 de = vp->v_data; in devfs_access()
648 de = de->de_dir; in devfs_access()
650 error = vaccess(vp->v_type, de->de_mode, de->de_uid, de->de_gid, in devfs_access()
663 if (p->p_session->s_ttydp == de->de_cdp) in devfs_access()
680 struct devfs_dirent *de = vp->v_data; in devfs_close() local
699 if (de->de_usecount == 2 && td != NULL) { in devfs_close()
796 struct devfs_dirent *de; in devfs_getattr() local
809 de = vp->v_data; in devfs_getattr()
810 KASSERT(de != NULL, ("Null dirent in devfs_getattr vp=%p", vp)); in devfs_getattr()
812 de = de->de_dir; in devfs_getattr()
813 KASSERT(de != NULL, in devfs_getattr()
816 vap->va_uid = de->de_uid; in devfs_getattr()
817 vap->va_gid = de->de_gid; in devfs_getattr()
818 vap->va_mode = de->de_mode; in devfs_getattr()
820 vap->va_size = strlen(de->de_symlink); in devfs_getattr()
840 fix(de->de_atime); in devfs_getattr()
841 vap->va_atime = de->de_atime; in devfs_getattr()
842 fix(de->de_mtime); in devfs_getattr()
843 vap->va_mtime = de->de_mtime; in devfs_getattr()
844 fix(de->de_ctime); in devfs_getattr()
845 vap->va_ctime = de->de_ctime; in devfs_getattr()
860 vap->va_nlink = de->de_links; in devfs_getattr()
861 vap->va_fileid = de->de_inode; in devfs_getattr()
1004 devfs_prison_check(struct devfs_dirent *de, struct thread *td) in devfs_prison_check() argument
1011 cdp = de->de_cdp; in devfs_prison_check()
1040 struct devfs_dirent *de, *dd; in devfs_lookupx() local
1084 de = devfs_parent_dirent(dd); in devfs_lookupx()
1085 if (de == NULL) in devfs_lookupx()
1089 error = devfs_allocv(de, mp, cnp->cn_lkflags & LK_TYPE_MASK, in devfs_lookupx()
1097 de = devfs_find(dd, cnp->cn_nameptr, cnp->cn_namelen, 0); in devfs_lookupx()
1098 while (de == NULL) { /* While(...) so we can use break */ in devfs_lookupx()
1147 de = *dde; in devfs_lookupx()
1153 if (de == NULL || de->de_flags & DE_WHITEOUT) { in devfs_lookupx()
1162 if (devfs_prison_check(de, td)) in devfs_lookupx()
1175 error = devfs_allocv(de, mp, cnp->cn_lkflags & LK_TYPE_MASK, vpp); in devfs_lookupx()
1203 struct devfs_dirent *dd, *de; in devfs_mknod() local
1222 TAILQ_FOREACH(de, &dd->de_dlist, de_list) { in devfs_mknod()
1223 if (cnp->cn_namelen != de->de_dirent->d_namlen) in devfs_mknod()
1225 if (de->de_dirent->d_type == DT_CHR && in devfs_mknod()
1226 (de->de_cdp->cdp_flags & CDP_ACTIVE) == 0) in devfs_mknod()
1228 if (bcmp(cnp->cn_nameptr, de->de_dirent->d_name, in devfs_mknod()
1229 de->de_dirent->d_namlen) != 0) in devfs_mknod()
1231 if (de->de_flags & DE_WHITEOUT) in devfs_mknod()
1235 if (de == NULL) in devfs_mknod()
1237 de->de_flags &= ~DE_WHITEOUT; in devfs_mknod()
1238 error = devfs_allocv(de, dvp->v_mount, LK_EXCLUSIVE, vpp); in devfs_mknod()
1446 struct devfs_dirent *de; in devfs_readdir() local
1480 de = ap->a_vp->v_data; in devfs_readdir()
1482 TAILQ_FOREACH(dd, &de->de_dlist, de_list) { in devfs_readdir()
1489 de = dd->de_dir; in devfs_readdir()
1491 de = dd; in devfs_readdir()
1496 dp->d_fileno = de->de_inode; in devfs_readdir()
1522 struct devfs_dirent *de; in devfs_readlink() local
1524 de = ap->a_vp->v_data; in devfs_readlink()
1525 return (uiomove(de->de_symlink, strlen(de->de_symlink), ap->a_uio)); in devfs_readlink()
1531 struct devfs_dirent *de; in devfs_reclaiml() local
1534 de = vp->v_data; in devfs_reclaiml()
1535 if (de != NULL) { in devfs_reclaiml()
1536 MPASS(de->de_usecount == 0); in devfs_reclaiml()
1537 de->de_vnode = NULL; in devfs_reclaiml()
1584 struct devfs_dirent *de, *de_covered; in devfs_remove() local
1592 de = vp->v_data; in devfs_remove()
1593 if (de->de_cdp == NULL) { in devfs_remove()
1594 TAILQ_REMOVE(&dd->de_dlist, de, de_list); in devfs_remove()
1595 if (de->de_dirent->d_type == DT_LNK) { in devfs_remove()
1596 de_covered = devfs_find(dd, de->de_dirent->d_name, in devfs_remove()
1597 de->de_dirent->d_namlen, 0); in devfs_remove()
1605 devfs_delete(dmp, de, 0); in devfs_remove()
1611 de->de_flags |= DE_WHITEOUT; in devfs_remove()
1629 struct devfs_dirent *de; in devfs_revoke() local
1653 de = cdp->cdp_dirents[i]; in devfs_revoke()
1654 if (de == NULL) in devfs_revoke()
1657 vp2 = de->de_vnode; in devfs_revoke()
1731 struct devfs_dirent *de; in devfs_setattr() local
1758 de = vp->v_data; in devfs_setattr()
1760 de = de->de_dir; in devfs_setattr()
1764 uid = de->de_uid; in devfs_setattr()
1768 gid = de->de_gid; in devfs_setattr()
1771 if (uid != de->de_uid || gid != de->de_gid) { in devfs_setattr()
1772 if ((ap->a_cred->cr_uid != de->de_uid) || uid != de->de_uid || in devfs_setattr()
1773 (gid != de->de_gid && !groupmember(gid, ap->a_cred))) { in devfs_setattr()
1778 de->de_uid = uid; in devfs_setattr()
1779 de->de_gid = gid; in devfs_setattr()
1784 if (ap->a_cred->cr_uid != de->de_uid) { in devfs_setattr()
1789 de->de_mode = vap->va_mode; in devfs_setattr()
1801 de->de_atime = vap->va_atime; in devfs_setattr()
1807 de->de_mtime = vap->va_mtime; in devfs_setattr()
1816 vfs_timestamp(&de->de_mtime); in devfs_setattr()
1829 struct devfs_dirent *de; in devfs_setlabel() local
1832 de = vp->v_data; in devfs_setlabel()
1835 mac_devfs_update(vp->v_mount, de, vp); in devfs_setlabel()
1853 struct devfs_dirent *de, *de_covered, *de_dotdot; in devfs_symlink() local
1864 de = devfs_newdirent(ap->a_cnp->cn_nameptr, ap->a_cnp->cn_namelen); in devfs_symlink()
1865 de->de_flags = DE_USER; in devfs_symlink()
1866 de->de_uid = 0; in devfs_symlink()
1867 de->de_gid = 0; in devfs_symlink()
1868 de->de_mode = 0755; in devfs_symlink()
1869 de->de_inode = alloc_unr(devfs_inos); in devfs_symlink()
1870 de->de_dir = dd; in devfs_symlink()
1871 de->de_dirent->d_type = DT_LNK; in devfs_symlink()
1873 de->de_symlink = malloc(i, M_DEVFS, M_WAITOK); in devfs_symlink()
1874 bcopy(ap->a_target, de->de_symlink, i); in devfs_symlink()
1876 mac_devfs_create_symlink(ap->a_cnp->cn_cred, dmp->dm_mount, dd, de); in devfs_symlink()
1878 de_covered = devfs_find(dd, de->de_dirent->d_name, in devfs_symlink()
1879 de->de_dirent->d_namlen, 0); in devfs_symlink()
1882 devfs_delete(dmp, de, DEVFS_DEL_NORECURSE); in devfs_symlink()
1893 TAILQ_INSERT_AFTER(&dd->de_dlist, de_dotdot, de, de_list); in devfs_symlink()
1895 devfs_rules_apply(dmp, de); in devfs_symlink()
1897 return (devfs_allocv(de, ap->a_dvp->v_mount, LK_EXCLUSIVE, ap->a_vpp)); in devfs_symlink()