Lines Matching refs:ncp
233 #define nc_inshash(ncp, hp) \ argument
235 (ncp)->hash_next = (hp)->hash_next; \
236 (ncp)->hash_prev = (ncache_t *)(hp); \
237 (hp)->hash_next->hash_prev = (ncp); \
238 (hp)->hash_next = (ncp); \
244 #define nc_rmhash(ncp) \ argument
246 (ncp)->hash_prev->hash_next = (ncp)->hash_next; \
247 (ncp)->hash_next->hash_prev = (ncp)->hash_prev; \
248 (ncp)->hash_prev = NULL; \
249 (ncp)->hash_next = NULL; \
255 #define dnlc_free(ncp) \ argument
257 kmem_free((ncp), sizeof (ncache_t) + (ncp)->namlen); \
438 ncache_t *ncp; in dnlc_enter() local
456 if ((ncp = dnlc_get(namlen)) == NULL) in dnlc_enter()
458 ncp->dp = dp; in dnlc_enter()
460 ncp->vp = vp; in dnlc_enter()
462 bcopy(name, ncp->name, namlen + 1); /* name and null */ in dnlc_enter()
463 ncp->hash = hash; in dnlc_enter()
473 dnlc_free(ncp); /* crfree done here */ in dnlc_enter()
481 nc_inshash(ncp, hp); in dnlc_enter()
504 ncache_t *ncp; in dnlc_update() local
528 if ((ncp = dnlc_get(namlen)) == NULL) { in dnlc_update()
532 ncp->dp = dp; in dnlc_update()
534 ncp->vp = vp; in dnlc_update()
536 bcopy(name, ncp->name, namlen + 1); /* name and null */ in dnlc_update()
537 ncp->hash = hash; in dnlc_update()
561 dnlc_free(ncp); /* crfree done here */ in dnlc_update()
567 nc_inshash(ncp, hp); in dnlc_update()
586 ncache_t *ncp; in dnlc_lookup() local
607 for (ncp = hp->hash_next; ncp != (ncache_t *)hp; in dnlc_lookup()
608 ncp = ncp->hash_next) { in dnlc_lookup()
609 if (ncp->hash == hash && /* fast signature check */ in dnlc_lookup()
610 ncp->dp == dp && in dnlc_lookup()
611 ncp->namlen == namlen && in dnlc_lookup()
612 bcmp(ncp->name, name, namlen) == 0) { in dnlc_lookup()
618 ncache_t *next = ncp->hash_next; in dnlc_lookup()
619 ncache_t *prev = ncp->hash_prev; in dnlc_lookup()
623 ncp->hash_next = next = hp->hash_next; in dnlc_lookup()
624 ncp->hash_prev = (ncache_t *)hp; in dnlc_lookup()
625 next->hash_prev = ncp; in dnlc_lookup()
626 hp->hash_next = ncp; in dnlc_lookup()
636 vp = ncp->vp; in dnlc_lookup()
667 ncache_t *ncp; in dnlc_remove() local
678 if (ncp = dnlc_search(dp, name, namlen, hash)) { in dnlc_remove()
682 nc_rmhash(ncp); in dnlc_remove()
684 VN_RELE_DNLC(ncp->vp); in dnlc_remove()
685 VN_RELE_DNLC(ncp->dp); in dnlc_remove()
686 dnlc_free(ncp); in dnlc_remove()
699 ncache_t *ncp; in dnlc_purge() local
713 ncp = nch->hash_next; in dnlc_purge()
714 while (ncp != (ncache_t *)nch) { in dnlc_purge()
717 np = ncp->hash_next; in dnlc_purge()
718 nc_rele[index++] = ncp->vp; in dnlc_purge()
719 nc_rele[index++] = ncp->dp; in dnlc_purge()
721 nc_rmhash(ncp); in dnlc_purge()
722 dnlc_free(ncp); in dnlc_purge()
723 ncp = np; in dnlc_purge()
734 if (ncp != (ncache_t *)nch) { in dnlc_purge()
748 ncache_t *ncp; in dnlc_purge_vp() local
766 ncp = nch->hash_next; in dnlc_purge_vp()
767 while (ncp != (ncache_t *)nch) { in dnlc_purge_vp()
770 np = ncp->hash_next; in dnlc_purge_vp()
771 if (ncp->dp == vp || ncp->vp == vp) { in dnlc_purge_vp()
772 nc_rele[index++] = ncp->vp; in dnlc_purge_vp()
773 nc_rele[index++] = ncp->dp; in dnlc_purge_vp()
774 nc_rmhash(ncp); in dnlc_purge_vp()
775 dnlc_free(ncp); in dnlc_purge_vp()
778 ncp = np; in dnlc_purge_vp()
782 ncp = np; in dnlc_purge_vp()
795 if (ncp != (ncache_t *)nch) { in dnlc_purge_vp()
811 ncache_t *ncp; in dnlc_purge_vfsp() local
826 ncp = nch->hash_next; in dnlc_purge_vfsp()
827 while (ncp != (ncache_t *)nch) { in dnlc_purge_vfsp()
830 np = ncp->hash_next; in dnlc_purge_vfsp()
831 ASSERT(ncp->dp != NULL); in dnlc_purge_vfsp()
832 ASSERT(ncp->vp != NULL); in dnlc_purge_vfsp()
833 if ((ncp->dp->v_vfsp == vfsp) || in dnlc_purge_vfsp()
834 (ncp->vp->v_vfsp == vfsp)) { in dnlc_purge_vfsp()
836 nc_rele[index++] = ncp->vp; in dnlc_purge_vfsp()
837 nc_rele[index++] = ncp->dp; in dnlc_purge_vfsp()
838 nc_rmhash(ncp); in dnlc_purge_vfsp()
839 dnlc_free(ncp); in dnlc_purge_vfsp()
842 ncp = np; in dnlc_purge_vfsp()
849 ncp = np; in dnlc_purge_vfsp()
859 if (ncp != (ncache_t *)nch) { in dnlc_purge_vfsp()
882 ncache_t *ncp; in dnlc_fs_purge1() local
902 for (ncp = hp->hash_prev; in dnlc_fs_purge1()
903 ncp != (ncache_t *)hp; in dnlc_fs_purge1()
904 ncp = ncp->hash_prev) { in dnlc_fs_purge1()
905 vp = ncp->vp; in dnlc_fs_purge1()
910 if (ncp != (ncache_t *)hp) { in dnlc_fs_purge1()
911 nc_rmhash(ncp); in dnlc_fs_purge1()
913 VN_RELE_DNLC(ncp->dp); in dnlc_fs_purge1()
915 dnlc_free(ncp); in dnlc_fs_purge1()
932 ncache_t *ncp; in dnlc_search() local
936 for (ncp = hp->hash_next; ncp != (ncache_t *)hp; ncp = ncp->hash_next) { in dnlc_search()
937 if (ncp->hash == hash && in dnlc_search()
938 ncp->dp == dp && in dnlc_search()
939 ncp->namlen == namlen && in dnlc_search()
940 bcmp(ncp->name, name, namlen) == 0) in dnlc_search()
941 return (ncp); in dnlc_search()
973 ncache_t *ncp; in dnlc_get() local
979 ncp = kmem_alloc(sizeof (ncache_t) + namlen, KM_NOSLEEP); in dnlc_get()
980 if (ncp == NULL) { in dnlc_get()
983 ncp->namlen = namlen; in dnlc_get()
986 return (ncp); in dnlc_get()
1001 ncache_t *ncp; in do_dnlc_reduce_cache() local
1043 for (cnt = 0, ncp = hp->hash_prev; ncp != (ncache_t *)hp; in do_dnlc_reduce_cache()
1044 ncp = ncp->hash_prev, cnt++) { in do_dnlc_reduce_cache()
1045 vp = ncp->vp; in do_dnlc_reduce_cache()
1061 ncp = hp->hash_prev; in do_dnlc_reduce_cache()
1063 vp = ncp->vp; in do_dnlc_reduce_cache()
1073 ncp = hp->hash_prev; /* pick the last one in the hash queue */ in do_dnlc_reduce_cache()
1075 vp = ncp->vp; in do_dnlc_reduce_cache()
1080 nc_rmhash(ncp); in do_dnlc_reduce_cache()
1083 VN_RELE_DNLC(ncp->dp); in do_dnlc_reduce_cache()
1084 dnlc_free(ncp); in do_dnlc_reduce_cache()