Lines Matching refs:dmp

356 	struct devfs_mount *dmp;  in devfs_populate_vp()  local
361 dmp = VFSTODEVFS(vp->v_mount); in devfs_populate_vp()
362 if (!devfs_populate_needed(dmp)) { in devfs_populate_vp()
363 sx_xlock(&dmp->dm_lock); in devfs_populate_vp()
369 sx_xlock(&dmp->dm_lock); in devfs_populate_vp()
370 DEVFS_DMP_HOLD(dmp); in devfs_populate_vp()
374 devfs_populate(dmp); in devfs_populate_vp()
376 sx_xunlock(&dmp->dm_lock); in devfs_populate_vp()
378 sx_xlock(&dmp->dm_lock); in devfs_populate_vp()
379 if (DEVFS_DMP_DROP(dmp)) { in devfs_populate_vp()
380 sx_xunlock(&dmp->dm_lock); in devfs_populate_vp()
381 devfs_unmount_final(dmp); in devfs_populate_vp()
386 sx_xunlock(&dmp->dm_lock); in devfs_populate_vp()
393 sx_xunlock(&dmp->dm_lock); in devfs_populate_vp()
405 struct devfs_mount *dmp; in devfs_vptocnp() local
411 dmp = VFSTODEVFS(vp->v_mount); in devfs_vptocnp()
423 if (vp->v_type == VDIR && dd == dmp->dm_rootdir) { in devfs_vptocnp()
456 sx_xunlock(&dmp->dm_lock); in devfs_vptocnp()
465 devfs_fqpn(char *buf, struct devfs_mount *dmp, struct devfs_dirent *dd, in devfs_fqpn() argument
471 sx_assert(&dmp->dm_lock, SA_LOCKED); in devfs_fqpn()
482 while (de != dmp->dm_rootdir) { in devfs_fqpn()
502 devfs_allocv_drop_refs(int drop_dm_lock, struct devfs_mount *dmp, in devfs_allocv_drop_refs() argument
514 if (DEVFS_DMP_DROP(dmp)) { in devfs_allocv_drop_refs()
518 sx_xunlock(&dmp->dm_lock); in devfs_allocv_drop_refs()
519 devfs_unmount_final(dmp); in devfs_allocv_drop_refs()
522 sx_unlock(&dmp->dm_lock); in devfs_allocv_drop_refs()
537 struct devfs_mount *dmp; in devfs_allocv() local
541 dmp = VFSTODEVFS(mp); in devfs_allocv()
543 sx_xunlock(&dmp->dm_lock); in devfs_allocv()
548 DEVFS_DMP_HOLD(dmp); in devfs_allocv()
554 sx_xunlock(&dmp->dm_lock); in devfs_allocv()
556 sx_xlock(&dmp->dm_lock); in devfs_allocv()
557 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()
629 (void) devfs_allocv_drop_refs(1, dmp, de); in devfs_allocv()
632 if (devfs_allocv_drop_refs(0, dmp, de)) { in devfs_allocv()
640 sx_xunlock(&dmp->dm_lock); in devfs_allocv()
805 struct devfs_mount *dmp; in devfs_getattr() local
814 dmp = VFSTODEVFS(vp->v_mount); in devfs_getattr()
815 sx_xunlock(&dmp->dm_lock); in devfs_getattr()
1050 struct devfs_mount *dmp; in devfs_lookupx() local
1064 dmp = VFSTODEVFS(mp); in devfs_lookupx()
1115 pname = devfs_fqpn(specname, dmp, dd, cnp); in devfs_lookupx()
1120 DEVFS_DMP_HOLD(dmp); in devfs_lookupx()
1121 sx_xunlock(&dmp->dm_lock); in devfs_lookupx()
1126 sx_xlock(&dmp->dm_lock); in devfs_lookupx()
1129 sx_xlock(&dmp->dm_lock); in devfs_lookupx()
1130 if (DEVFS_DMP_DROP(dmp)) { in devfs_lookupx()
1131 sx_xunlock(&dmp->dm_lock); in devfs_lookupx()
1132 devfs_unmount_final(dmp); in devfs_lookupx()
1134 sx_xunlock(&dmp->dm_lock); in devfs_lookupx()
1138 if (DEVFS_DMP_DROP(dmp)) { in devfs_lookupx()
1140 sx_xunlock(&dmp->dm_lock); in devfs_lookupx()
1141 devfs_unmount_final(dmp); in devfs_lookupx()
1151 dde = &cdev2priv(cdev)->cdp_dirents[dmp->dm_idx]; in devfs_lookupx()
1189 struct devfs_mount *dmp; in devfs_lookup() local
1195 dmp = VFSTODEVFS(ap->a_dvp->v_mount); in devfs_lookup()
1199 sx_xunlock(&dmp->dm_lock); in devfs_lookup()
1209 struct devfs_mount *dmp; in devfs_mknod() local
1219 dmp = VFSTODEVFS(dvp->v_mount); in devfs_mknod()
1226 sx_xlock(&dmp->dm_lock); in devfs_mknod()
1246 sx_xunlock(&dmp->dm_lock); in devfs_mknod()
1452 struct devfs_mount *dmp; in devfs_readdir() local
1478 dmp = VFSTODEVFS(ap->a_vp->v_mount); in devfs_readdir()
1511 sx_xunlock(&dmp->dm_lock); in devfs_readdir()
1590 struct devfs_mount *dmp = VFSTODEVFS(vp->v_mount); in devfs_remove() local
1595 sx_xlock(&dmp->dm_lock); in devfs_remove()
1610 devfs_delete(dmp, de, 0); in devfs_remove()
1611 sx_xunlock(&dmp->dm_lock); in devfs_remove()
1617 sx_xunlock(&dmp->dm_lock); in devfs_remove()
1704 struct devfs_mount *dmp; in devfs_rioctl() local
1713 dmp = VFSTODEVFS(vp->v_mount); in devfs_rioctl()
1714 sx_xlock(&dmp->dm_lock); in devfs_rioctl()
1716 DEVFS_DMP_HOLD(dmp); in devfs_rioctl()
1717 devfs_populate(dmp); in devfs_rioctl()
1718 if (DEVFS_DMP_DROP(dmp)) { in devfs_rioctl()
1719 sx_xunlock(&dmp->dm_lock); in devfs_rioctl()
1720 devfs_unmount_final(dmp); in devfs_rioctl()
1723 error = devfs_rules_ioctl(dmp, ap->a_command, ap->a_data, ap->a_td); in devfs_rioctl()
1724 sx_xunlock(&dmp->dm_lock); in devfs_rioctl()
1863 struct devfs_mount *dmp; in devfs_symlink() local
1868 dmp = VFSTODEVFS(ap->a_dvp->v_mount); in devfs_symlink()
1885 mac_devfs_create_symlink(ap->a_cnp->cn_cred, dmp->dm_mount, dd, de); in devfs_symlink()
1891 devfs_delete(dmp, de, DEVFS_DEL_NORECURSE); in devfs_symlink()
1892 sx_xunlock(&dmp->dm_lock); in devfs_symlink()
1903 devfs_dir_ref_de(dmp, dd); in devfs_symlink()
1904 devfs_rules_apply(dmp, de); in devfs_symlink()