Lines Matching refs:parent

454 	struct sdev_node	*parent = dv->sdev_dotdot;  in sdev_getattr()  local
456 ASSERT(parent); in sdev_getattr()
458 rw_enter(&parent->sdev_contents, RW_READER); in sdev_getattr()
467 rw_exit(&parent->sdev_contents); in sdev_getattr()
474 rw_exit(&parent->sdev_contents); in sdev_getattr()
622 struct sdev_node *parent; in sdev_lookup() local
625 parent = VTOSDEV(dvp); in sdev_lookup()
626 ASSERT(parent); in sdev_lookup()
632 if (!SDEV_IS_GLOBAL(parent)) in sdev_lookup()
634 return (devname_lookup_func(parent, nm, vpp, cred, NULL, 0)); in sdev_lookup()
645 struct sdev_node *parent; in sdev_create() local
656 parent = VTOSDEV(dvp); in sdev_create()
657 ASSERT(parent); in sdev_create()
659 rw_enter(&parent->sdev_dotdot->sdev_contents, RW_READER); in sdev_create()
660 if (parent->sdev_state == SDEV_ZOMBIE) { in sdev_create()
661 rw_exit(&parent->sdev_dotdot->sdev_contents); in sdev_create()
668 if (!SDEV_IS_GLOBAL(parent)) { in sdev_create()
669 rw_exit(&parent->sdev_dotdot->sdev_contents); in sdev_create()
698 rw_exit(&parent->sdev_dotdot->sdev_contents); in sdev_create()
728 ASSERT(parent->sdev_attrvp); in sdev_create()
729 error = VOP_CREATE(parent->sdev_attrvp, in sdev_create()
760 rw_enter(&parent->sdev_contents, RW_WRITER); in sdev_create()
761 if (!SDEV_IS_PERSIST(parent)) { in sdev_create()
762 rw_exit(&parent->sdev_contents); in sdev_create()
765 ASSERT(parent->sdev_attrvp); in sdev_create()
766 error = sdev_mknode(parent, nm, &self, vap, NULL, NULL, in sdev_create()
769 rw_exit(&parent->sdev_contents); in sdev_create()
774 rw_exit(&parent->sdev_contents); in sdev_create()
781 if (SDEV_IS_GLOBAL(parent)) in sdev_create()
782 atomic_inc_ulong(&parent->sdev_gdir_gen); in sdev_create()
797 struct sdev_node *parent = (struct sdev_node *)VTOSDEV(dvp); in sdev_remove() local
813 ASSERT(parent); in sdev_remove()
814 rw_enter(&parent->sdev_contents, RW_READER); in sdev_remove()
815 if (!SDEV_IS_GLOBAL(parent)) { in sdev_remove()
816 rw_exit(&parent->sdev_contents); in sdev_remove()
821 if ((error = sdev_self_access(parent, VEXEC, 0, cred, ct)) != 0) { in sdev_remove()
822 rw_exit(&parent->sdev_contents); in sdev_remove()
827 dv = sdev_cache_lookup(parent, nm); in sdev_remove()
829 rw_exit(&parent->sdev_contents); in sdev_remove()
836 rw_exit(&parent->sdev_contents); in sdev_remove()
842 if ((error = sdev_self_access(parent, VWRITE, 0, cred, ct)) != 0) { in sdev_remove()
843 rw_exit(&parent->sdev_contents); in sdev_remove()
849 if (!rw_tryupgrade(&parent->sdev_contents)) { in sdev_remove()
850 rw_exit(&parent->sdev_contents); in sdev_remove()
851 rw_enter(&parent->sdev_contents, RW_WRITER); in sdev_remove()
853 if (parent->sdev_state == SDEV_ZOMBIE) { in sdev_remove()
854 rw_exit(&parent->sdev_contents); in sdev_remove()
862 rw_exit(&parent->sdev_contents); in sdev_remove()
873 sdev_cache_update(parent, &dv, nm, SDEV_CACHE_DELETE); in sdev_remove()
875 rw_exit(&parent->sdev_contents); in sdev_remove()
881 ASSERT(parent->sdev_attrvp); in sdev_remove()
882 error = VOP_REMOVE(parent->sdev_attrvp, nm, cred, in sdev_remove()
892 "disk %s\n", nm, parent->sdev_path)); in sdev_remove()
1162 struct sdev_node *parent = (struct sdev_node *)VTOSDEV(dvp); in sdev_symlink() local
1165 ASSERT(parent); in sdev_symlink()
1166 rw_enter(&parent->sdev_dotdot->sdev_contents, RW_READER); in sdev_symlink()
1167 if (parent->sdev_state == SDEV_ZOMBIE) { in sdev_symlink()
1168 rw_exit(&parent->sdev_dotdot->sdev_contents); in sdev_symlink()
1170 parent->sdev_name)); in sdev_symlink()
1174 if (!SDEV_IS_GLOBAL(parent)) { in sdev_symlink()
1175 rw_exit(&parent->sdev_dotdot->sdev_contents); in sdev_symlink()
1178 rw_exit(&parent->sdev_dotdot->sdev_contents); in sdev_symlink()
1201 rw_enter(&parent->sdev_contents, RW_WRITER); in sdev_symlink()
1202 error = sdev_mknode(parent, lnm, &self, tva, NULL, (void *)tnm, in sdev_symlink()
1205 rw_exit(&parent->sdev_contents); in sdev_symlink()
1213 rw_exit(&parent->sdev_contents); in sdev_symlink()
1219 if (SDEV_IS_GLOBAL(parent)) in sdev_symlink()
1220 atomic_inc_ulong(&parent->sdev_gdir_gen); in sdev_symlink()
1236 struct sdev_node *parent = (struct sdev_node *)VTOSDEV(dvp); in sdev_mkdir() local
1240 ASSERT(parent && parent->sdev_dotdot); in sdev_mkdir()
1241 rw_enter(&parent->sdev_dotdot->sdev_contents, RW_READER); in sdev_mkdir()
1242 if (parent->sdev_state == SDEV_ZOMBIE) { in sdev_mkdir()
1243 rw_exit(&parent->sdev_dotdot->sdev_contents); in sdev_mkdir()
1248 if (!SDEV_IS_GLOBAL(parent)) { in sdev_mkdir()
1249 rw_exit(&parent->sdev_dotdot->sdev_contents); in sdev_mkdir()
1252 rw_exit(&parent->sdev_dotdot->sdev_contents); in sdev_mkdir()
1275 rw_enter(&parent->sdev_contents, RW_WRITER); in sdev_mkdir()
1276 error = sdev_mknode(parent, nm, &self, in sdev_mkdir()
1279 rw_exit(&parent->sdev_contents); in sdev_mkdir()
1285 rw_exit(&parent->sdev_contents); in sdev_mkdir()
1291 if (SDEV_IS_GLOBAL(parent)) in sdev_mkdir()
1292 atomic_inc_ulong(&parent->sdev_gdir_gen); in sdev_mkdir()
1311 struct sdev_node *parent = (struct sdev_node *)VTOSDEV(dvp); in sdev_rmdir() local
1322 ASSERT(parent && parent->sdev_dotdot); in sdev_rmdir()
1323 rw_enter(&parent->sdev_dotdot->sdev_contents, RW_READER); in sdev_rmdir()
1324 if (!SDEV_IS_GLOBAL(parent)) { in sdev_rmdir()
1325 rw_exit(&parent->sdev_dotdot->sdev_contents); in sdev_rmdir()
1328 rw_exit(&parent->sdev_dotdot->sdev_contents); in sdev_rmdir()
1335 rw_enter(&parent->sdev_contents, RW_WRITER); in sdev_rmdir()
1336 self = sdev_cache_lookup(parent, nm); in sdev_rmdir()
1338 rw_exit(&parent->sdev_contents); in sdev_rmdir()
1345 rw_exit(&parent->sdev_contents); in sdev_rmdir()
1352 rw_exit(&parent->sdev_contents); in sdev_rmdir()
1358 rw_exit(&parent->sdev_contents); in sdev_rmdir()
1364 rw_exit(&parent->sdev_contents); in sdev_rmdir()
1370 rw_exit(&parent->sdev_contents); in sdev_rmdir()
1381 rw_exit(&parent->sdev_contents); in sdev_rmdir()
1389 sdev_cache_update(parent, &self, nm, SDEV_CACHE_DELETE); in sdev_rmdir()
1390 rw_exit(&parent->sdev_contents); in sdev_rmdir()
1395 if (SDEV_IS_PERSIST(parent)) { in sdev_rmdir()
1396 ASSERT(parent->sdev_attrvp); in sdev_rmdir()
1397 error = VOP_RMDIR(parent->sdev_attrvp, nm, in sdev_rmdir()
1398 parent->sdev_attrvp, kcred, ct, flags); in sdev_rmdir()
1402 " disk error %d\n", parent->sdev_path, error)); in sdev_rmdir()