Lines Matching refs:dmp

341 	struct devfs_mount *dmp;  in devfs_populate_vp()  local
346 dmp = VFSTODEVFS(vp->v_mount); in devfs_populate_vp()
347 if (!devfs_populate_needed(dmp)) { in devfs_populate_vp()
348 sx_xlock(&dmp->dm_lock); in devfs_populate_vp()
354 sx_xlock(&dmp->dm_lock); in devfs_populate_vp()
355 DEVFS_DMP_HOLD(dmp); in devfs_populate_vp()
359 devfs_populate(dmp); in devfs_populate_vp()
361 sx_xunlock(&dmp->dm_lock); in devfs_populate_vp()
363 sx_xlock(&dmp->dm_lock); in devfs_populate_vp()
364 if (DEVFS_DMP_DROP(dmp)) { in devfs_populate_vp()
365 sx_xunlock(&dmp->dm_lock); in devfs_populate_vp()
366 devfs_unmount_final(dmp); in devfs_populate_vp()
371 sx_xunlock(&dmp->dm_lock); in devfs_populate_vp()
378 sx_xunlock(&dmp->dm_lock); in devfs_populate_vp()
390 struct devfs_mount *dmp; in devfs_vptocnp() local
396 dmp = VFSTODEVFS(vp->v_mount); in devfs_vptocnp()
408 if (vp->v_type == VDIR && dd == dmp->dm_rootdir) { in devfs_vptocnp()
441 sx_xunlock(&dmp->dm_lock); in devfs_vptocnp()
450 devfs_fqpn(char *buf, struct devfs_mount *dmp, struct devfs_dirent *dd, in devfs_fqpn() argument
456 sx_assert(&dmp->dm_lock, SA_LOCKED); in devfs_fqpn()
467 while (de != dmp->dm_rootdir) { in devfs_fqpn()
487 devfs_allocv_drop_refs(int drop_dm_lock, struct devfs_mount *dmp, in devfs_allocv_drop_refs() argument
499 if (DEVFS_DMP_DROP(dmp)) { in devfs_allocv_drop_refs()
503 sx_xunlock(&dmp->dm_lock); in devfs_allocv_drop_refs()
504 devfs_unmount_final(dmp); in devfs_allocv_drop_refs()
507 sx_unlock(&dmp->dm_lock); in devfs_allocv_drop_refs()
536 struct devfs_mount *dmp; in devfs_allocv() local
540 dmp = VFSTODEVFS(mp); in devfs_allocv()
542 sx_xunlock(&dmp->dm_lock); in devfs_allocv()
547 DEVFS_DMP_HOLD(dmp); in devfs_allocv()
553 sx_xunlock(&dmp->dm_lock); in devfs_allocv()
555 sx_xlock(&dmp->dm_lock); in devfs_allocv()
556 if (devfs_allocv_drop_refs(0, dmp, de)) { in devfs_allocv()
570 sx_xunlock(&dmp->dm_lock); in devfs_allocv()
577 devfs_allocv_drop_refs(1, dmp, de); in devfs_allocv()
586 devfs_allocv_drop_refs(1, dmp, 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()
633 sx_xunlock(&dmp->dm_lock); in devfs_allocv()
797 struct devfs_mount *dmp; in devfs_getattr() local
806 dmp = VFSTODEVFS(vp->v_mount); in devfs_getattr()
807 sx_xunlock(&dmp->dm_lock); in devfs_getattr()
1042 struct devfs_mount *dmp; in devfs_lookupx() local
1056 dmp = VFSTODEVFS(mp); in devfs_lookupx()
1107 pname = devfs_fqpn(specname, dmp, dd, cnp); in devfs_lookupx()
1112 DEVFS_DMP_HOLD(dmp); in devfs_lookupx()
1113 sx_xunlock(&dmp->dm_lock); in devfs_lookupx()
1120 sx_xlock(&dmp->dm_lock); in devfs_lookupx()
1123 sx_xlock(&dmp->dm_lock); in devfs_lookupx()
1124 if (DEVFS_DMP_DROP(dmp)) { in devfs_lookupx()
1125 sx_xunlock(&dmp->dm_lock); in devfs_lookupx()
1126 devfs_unmount_final(dmp); in devfs_lookupx()
1128 sx_xunlock(&dmp->dm_lock); in devfs_lookupx()
1132 if (DEVFS_DMP_DROP(dmp)) { in devfs_lookupx()
1134 sx_xunlock(&dmp->dm_lock); in devfs_lookupx()
1135 devfs_unmount_final(dmp); in devfs_lookupx()
1145 dde = &cdev2priv(cdev)->cdp_dirents[dmp->dm_idx]; in devfs_lookupx()
1184 struct devfs_mount *dmp; in devfs_lookup() local
1190 dmp = VFSTODEVFS(ap->a_dvp->v_mount); in devfs_lookup()
1194 sx_xunlock(&dmp->dm_lock); in devfs_lookup()
1204 struct devfs_mount *dmp; in devfs_mknod() local
1214 dmp = VFSTODEVFS(dvp->v_mount); in devfs_mknod()
1221 sx_xlock(&dmp->dm_lock); in devfs_mknod()
1241 sx_xunlock(&dmp->dm_lock); in devfs_mknod()
1447 struct devfs_mount *dmp; in devfs_readdir() local
1473 dmp = VFSTODEVFS(ap->a_vp->v_mount); in devfs_readdir()
1506 sx_xunlock(&dmp->dm_lock); in devfs_readdir()
1585 struct devfs_mount *dmp = VFSTODEVFS(vp->v_mount); in devfs_remove() local
1590 sx_xlock(&dmp->dm_lock); in devfs_remove()
1605 devfs_delete(dmp, de, 0); in devfs_remove()
1606 sx_xunlock(&dmp->dm_lock); in devfs_remove()
1612 sx_xunlock(&dmp->dm_lock); in devfs_remove()
1695 struct devfs_mount *dmp; in devfs_rioctl() local
1704 dmp = VFSTODEVFS(vp->v_mount); in devfs_rioctl()
1705 sx_xlock(&dmp->dm_lock); in devfs_rioctl()
1707 DEVFS_DMP_HOLD(dmp); in devfs_rioctl()
1708 devfs_populate(dmp); in devfs_rioctl()
1709 if (DEVFS_DMP_DROP(dmp)) { in devfs_rioctl()
1710 sx_xunlock(&dmp->dm_lock); in devfs_rioctl()
1711 devfs_unmount_final(dmp); in devfs_rioctl()
1714 error = devfs_rules_ioctl(dmp, ap->a_command, ap->a_data, ap->a_td); in devfs_rioctl()
1715 sx_xunlock(&dmp->dm_lock); in devfs_rioctl()
1854 struct devfs_mount *dmp; in devfs_symlink() local
1859 dmp = VFSTODEVFS(ap->a_dvp->v_mount); in devfs_symlink()
1876 mac_devfs_create_symlink(ap->a_cnp->cn_cred, dmp->dm_mount, dd, de); in devfs_symlink()
1882 devfs_delete(dmp, de, DEVFS_DEL_NORECURSE); in devfs_symlink()
1883 sx_xunlock(&dmp->dm_lock); in devfs_symlink()
1894 devfs_dir_ref_de(dmp, dd); in devfs_symlink()
1895 devfs_rules_apply(dmp, de); in devfs_symlink()