Lines Matching refs:np

161 sn_inactive(smbnode_t *np)  in sn_inactive()  argument
175 mutex_enter(&np->r_statelock); in sn_inactive()
177 ovsa = np->r_secattr; in sn_inactive()
178 np->r_secattr = smbfs_vsa0; in sn_inactive()
179 np->r_sectime = 0; in sn_inactive()
181 oldcr = np->r_cred; in sn_inactive()
182 np->r_cred = NULL; in sn_inactive()
184 orpath = np->n_rpath; in sn_inactive()
185 orplen = np->n_rplen; in sn_inactive()
186 np->n_rpath = NULL; in sn_inactive()
187 np->n_rplen = 0; in sn_inactive()
189 mutex_exit(&np->r_statelock); in sn_inactive()
191 vp = SMBTOV(np); in sn_inactive()
234 smbnode_t *np; in smbfs_node_findcreate() local
270 np = sn_hashfind(mi, rpath, rplen, NULL); in smbfs_node_findcreate()
272 np = make_smbnode(mi, rpath, rplen, &newnode); in smbfs_node_findcreate()
284 return (np); in smbfs_node_findcreate()
291 ASSERT(np != NULL); in smbfs_node_findcreate()
293 return (np); in smbfs_node_findcreate()
299 vp = SMBTOV(np); in smbfs_node_findcreate()
308 return (np); in smbfs_node_findcreate()
327 smbnode_t *np; in make_smbnode() local
338 np = sn_hashfind(mi, rpath, rplen, NULL); in make_smbnode()
339 if (np != NULL) { in make_smbnode()
341 return (np); in make_smbnode()
352 np = smbfreelist; in make_smbnode()
353 sn_rmfree(np); in make_smbnode()
356 vp = SMBTOV(np); in make_smbnode()
358 if (np->r_flags & RHASHED) { in make_smbnode()
359 smbmntinfo_t *tmp_mi = np->n_mount; in make_smbnode()
372 sn_rmhash_locked(np); in make_smbnode()
376 sn_inactive(np); in make_smbnode()
391 smbfs_rw_destroy(&np->r_rwlock); in make_smbnode()
392 smbfs_rw_destroy(&np->r_lkserlock); in make_smbnode()
393 mutex_destroy(&np->r_statelock); in make_smbnode()
394 cv_destroy(&np->r_cv); in make_smbnode()
410 np = kmem_cache_alloc(smbnode_cache, KM_SLEEP); in make_smbnode()
425 bzero(np, sizeof (*np)); in make_smbnode()
427 smbfs_rw_init(&np->r_rwlock, NULL, RW_DEFAULT, NULL); in make_smbnode()
428 smbfs_rw_init(&np->r_lkserlock, NULL, RW_DEFAULT, NULL); in make_smbnode()
429 mutex_init(&np->r_statelock, NULL, MUTEX_DEFAULT, NULL); in make_smbnode()
430 cv_init(&np->r_cv, NULL, CV_DEFAULT, NULL); in make_smbnode()
433 np->r_vnode = vp; in make_smbnode()
434 np->n_mount = mi; in make_smbnode()
436 np->n_fid = NULL; in make_smbnode()
437 np->n_uid = mi->smi_uid; in make_smbnode()
438 np->n_gid = mi->smi_gid; in make_smbnode()
448 vp->v_data = (caddr_t)np; in make_smbnode()
473 smbfs_addfree(np); in make_smbnode()
484 np->n_rpath = new_rpath; in make_smbnode()
485 np->n_rplen = rplen; in make_smbnode()
486 np->n_ino = smbfs_gethash(new_rpath, rplen); in make_smbnode()
488 sn_addhash_locked(np, where); in make_smbnode()
490 return (np); in make_smbnode()
505 smbfs_addfree(smbnode_t *np) in smbfs_addfree() argument
511 ASSERT(np->r_freef == NULL && np->r_freeb == NULL); in smbfs_addfree()
513 vp = SMBTOV(np); in smbfs_addfree()
527 if (np->r_count == 0 && ( in smbfs_addfree()
528 (np->r_flags & RHASHED) == 0 || in smbfs_addfree()
529 (np->r_error != 0) || in smbfs_addfree()
535 if (np->r_flags & RHASHED) { in smbfs_addfree()
549 sn_rmhash_locked(np); in smbfs_addfree()
553 sn_inactive(np); in smbfs_addfree()
582 sn_destroy_node(np); in smbfs_addfree()
610 np->r_freef = np; in smbfs_addfree()
611 np->r_freeb = np; in smbfs_addfree()
612 smbfreelist = np; in smbfs_addfree()
614 np->r_freef = smbfreelist; in smbfs_addfree()
615 np->r_freeb = smbfreelist->r_freeb; in smbfs_addfree()
616 smbfreelist->r_freeb->r_freef = np; in smbfs_addfree()
617 smbfreelist->r_freeb = np; in smbfs_addfree()
633 sn_rmfree(smbnode_t *np) in sn_rmfree() argument
637 ASSERT(np->r_freef != NULL && np->r_freeb != NULL); in sn_rmfree()
639 if (np == smbfreelist) { in sn_rmfree()
640 smbfreelist = np->r_freef; in sn_rmfree()
641 if (np == smbfreelist) in sn_rmfree()
645 np->r_freeb->r_freef = np->r_freef; in sn_rmfree()
646 np->r_freef->r_freeb = np->r_freeb; in sn_rmfree()
648 np->r_freef = np->r_freeb = NULL; in sn_rmfree()
659 sn_addhash_locked(smbnode_t *np, avl_index_t where) in sn_addhash_locked() argument
661 smbmntinfo_t *mi = np->n_mount; in sn_addhash_locked()
665 mutex_enter(&np->r_statelock); in sn_addhash_locked()
666 if ((np->r_flags & RHASHED) == 0) { in sn_addhash_locked()
667 avl_insert(&mi->smi_hash_avl, np, where); in sn_addhash_locked()
668 np->r_flags |= RHASHED; in sn_addhash_locked()
670 mutex_exit(&np->r_statelock); in sn_addhash_locked()
681 sn_rmhash_locked(smbnode_t *np) in sn_rmhash_locked() argument
683 smbmntinfo_t *mi = np->n_mount; in sn_rmhash_locked()
687 mutex_enter(&np->r_statelock); in sn_rmhash_locked()
688 if ((np->r_flags & RHASHED) != 0) { in sn_rmhash_locked()
689 np->r_flags &= ~RHASHED; in sn_rmhash_locked()
690 avl_remove(&mi->smi_hash_avl, np); in sn_rmhash_locked()
692 mutex_exit(&np->r_statelock); in sn_rmhash_locked()
701 smbfs_rmhash(smbnode_t *np) in smbfs_rmhash() argument
703 smbmntinfo_t *mi = np->n_mount; in smbfs_rmhash()
706 sn_rmhash_locked(np); in smbfs_rmhash()
725 smbnode_t *np; in sn_hashfind() local
735 np = avl_find(&mi->smi_hash_avl, &nhdr, pwhere); in sn_hashfind()
737 if (np == NULL) in sn_hashfind()
744 vp = SMBTOV(np); in sn_hashfind()
745 if (np->r_freef != NULL) { in sn_hashfind()
753 if (np->r_freef != NULL) { in sn_hashfind()
754 sn_rmfree(np); in sn_hashfind()
763 return (np); in sn_hashfind()
827 smbnode_t *np; in smbfs_attrcache_prune() local
834 np = top_np; in smbfs_attrcache_prune()
838 np = avl_walk(&mi->smi_hash_avl, np, AVL_AFTER); in smbfs_attrcache_prune()
839 if (np == NULL) in smbfs_attrcache_prune()
841 if (np->n_rplen < rplen) in smbfs_attrcache_prune()
843 if (0 != strncmp(np->n_rpath, rpath, rplen)) in smbfs_attrcache_prune()
845 if (np->n_rplen > rplen && ( in smbfs_attrcache_prune()
846 np->n_rpath[rplen] == ':' || in smbfs_attrcache_prune()
847 np->n_rpath[rplen] == '\\')) in smbfs_attrcache_prune()
848 smbfs_attrcache_remove(np); in smbfs_attrcache_prune()
879 smbnode_t *np; in smbfs_check_table() local
885 for (np = avl_first(&mi->smi_hash_avl); np != NULL; in smbfs_check_table()
886 np = avl_walk(&mi->smi_hash_avl, np, AVL_AFTER)) { in smbfs_check_table()
888 if (np == rtnp) in smbfs_check_table()
890 vp = SMBTOV(np); in smbfs_check_table()
894 if (np->r_freef == NULL) { in smbfs_check_table()
896 (void *)np, np->n_rpath); in smbfs_check_table()
902 (np->r_flags & RDIRTY)) { in smbfs_check_table()
904 (void *)np, np->n_rpath); in smbfs_check_table()
909 if (np->r_count > 0) { in smbfs_check_table()
911 (void *)np, np->n_rpath); in smbfs_check_table()
943 smbnode_t *np; in smbfs_destroy_table() local
953 while ((np = avl_destroy_nodes(&mi->smi_hash_avl, &v)) != NULL) { in smbfs_destroy_table()
956 if (np->r_freef == NULL) { in smbfs_destroy_table()
962 avl_add(&tmp_avl, np); in smbfs_destroy_table()
968 sn_rmfree(np); in smbfs_destroy_table()
976 mutex_enter(&np->r_statelock); in smbfs_destroy_table()
977 np->r_flags &= ~RHASHED; in smbfs_destroy_table()
978 mutex_exit(&np->r_statelock); in smbfs_destroy_table()
984 np->r_avl_node.avl_child[0] = in smbfs_destroy_table()
986 rlist = np; in smbfs_destroy_table()
1004 while ((np = rlist) != NULL) { in smbfs_destroy_table()
1005 rlist = (smbnode_t *)np->r_avl_node.avl_child[0]; in smbfs_destroy_table()
1006 smbfs_addfree(np); in smbfs_destroy_table()
1017 sn_destroy_node(smbnode_t *np) in sn_destroy_node() argument
1022 vp = SMBTOV(np); in sn_destroy_node()
1026 ASSERT(np->r_count == 0); in sn_destroy_node()
1027 ASSERT(np->r_mapcnt == 0); in sn_destroy_node()
1028 ASSERT(np->r_secattr.vsa_aclentp == NULL); in sn_destroy_node()
1029 ASSERT(np->r_cred == NULL); in sn_destroy_node()
1030 ASSERT(np->n_rpath == NULL); in sn_destroy_node()
1031 ASSERT(!(np->r_flags & RHASHED)); in sn_destroy_node()
1032 ASSERT(np->r_freef == NULL && np->r_freeb == NULL); in sn_destroy_node()
1036 kmem_cache_free(smbnode_cache, np); in sn_destroy_node()
1050 smbnode_t *np; in smbfs_rflush() local
1076 for (np = avl_first(&mi->smi_hash_avl); np != NULL; in smbfs_rflush()
1077 np = avl_walk(&mi->smi_hash_avl, np, AVL_AFTER)) { in smbfs_rflush()
1078 vp = SMBTOV(np); in smbfs_rflush()
1092 ((np->r_flags & RDIRTY) || np->r_mapcnt > 0)) { in smbfs_rflush()
1128 smbnode_t *np; in smbfs_directio() local
1130 np = VTOSMB(vp); in smbfs_directio()
1134 if (np->r_flags & RDIRECTIO) in smbfs_directio()
1143 if (np->r_flags & RDIRECTIO) { in smbfs_directio()
1150 (np->r_flags & RDIRTY) != 0) { in smbfs_directio()
1155 mutex_enter(&np->r_statelock); in smbfs_directio()
1156 if (!np->r_error) in smbfs_directio()
1157 np->r_error = error; in smbfs_directio()
1158 mutex_exit(&np->r_statelock); in smbfs_directio()
1165 mutex_enter(&np->r_statelock); in smbfs_directio()
1166 np->r_flags |= RDIRECTIO; in smbfs_directio()
1167 mutex_exit(&np->r_statelock); in smbfs_directio()
1173 mutex_enter(&np->r_statelock); in smbfs_directio()
1174 np->r_flags &= ~RDIRECTIO; /* disable direct mode */ in smbfs_directio()
1175 mutex_exit(&np->r_statelock); in smbfs_directio()
1294 smbnode_t *np; in smbfs_node_reclaim() local
1298 while ((np = smbfreelist) != NULL) { in smbfs_node_reclaim()
1299 sn_rmfree(np); in smbfs_node_reclaim()
1301 if (np->r_flags & RHASHED) { in smbfs_node_reclaim()
1302 vp = SMBTOV(np); in smbfs_node_reclaim()
1303 mi = np->n_mount; in smbfs_node_reclaim()
1314 sn_rmhash_locked(np); in smbfs_node_reclaim()
1322 smbfs_addfree(np); in smbfs_node_reclaim()