Lines Matching refs:ncp

235 #define	nc_inshash(ncp, hp) \  argument
237 (ncp)->hash_next = (hp)->hash_next; \
238 (ncp)->hash_prev = (ncache_t *)(hp); \
239 (hp)->hash_next->hash_prev = (ncp); \
240 (hp)->hash_next = (ncp); \
246 #define nc_rmhash(ncp) \ argument
248 (ncp)->hash_prev->hash_next = (ncp)->hash_next; \
249 (ncp)->hash_next->hash_prev = (ncp)->hash_prev; \
250 (ncp)->hash_prev = NULL; \
251 (ncp)->hash_next = NULL; \
257 #define dnlc_free(ncp) \ argument
259 kmem_free((ncp), NCACHE_SIZE((ncp)->namlen)); \
439 ncache_t *ncp; in dnlc_enter() local
457 if ((ncp = dnlc_get(namlen)) == NULL) in dnlc_enter()
459 ncp->dp = dp; in dnlc_enter()
461 ncp->vp = vp; in dnlc_enter()
463 bcopy(name, ncp->name, namlen); in dnlc_enter()
464 ncp->hash = hash; in dnlc_enter()
474 dnlc_free(ncp); /* crfree done here */ in dnlc_enter()
482 nc_inshash(ncp, hp); in dnlc_enter()
505 ncache_t *ncp; in dnlc_update() local
529 if ((ncp = dnlc_get(namlen)) == NULL) { in dnlc_update()
533 ncp->dp = dp; in dnlc_update()
535 ncp->vp = vp; in dnlc_update()
537 bcopy(name, ncp->name, namlen); in dnlc_update()
538 ncp->hash = hash; in dnlc_update()
562 dnlc_free(ncp); /* crfree done here */ in dnlc_update()
568 nc_inshash(ncp, hp); in dnlc_update()
587 ncache_t *ncp; in dnlc_lookup() local
608 for (ncp = hp->hash_next; ncp != (ncache_t *)hp; in dnlc_lookup()
609 ncp = ncp->hash_next) { in dnlc_lookup()
610 if (ncp->hash == hash && /* fast signature check */ in dnlc_lookup()
611 ncp->dp == dp && in dnlc_lookup()
612 ncp->namlen == namlen && in dnlc_lookup()
613 bcmp(ncp->name, name, namlen) == 0) { in dnlc_lookup()
619 ncache_t *next = ncp->hash_next; in dnlc_lookup()
620 ncache_t *prev = ncp->hash_prev; in dnlc_lookup()
624 ncp->hash_next = next = hp->hash_next; in dnlc_lookup()
625 ncp->hash_prev = (ncache_t *)hp; in dnlc_lookup()
626 next->hash_prev = ncp; in dnlc_lookup()
627 hp->hash_next = ncp; in dnlc_lookup()
637 vp = ncp->vp; in dnlc_lookup()
668 ncache_t *ncp; in dnlc_remove() local
679 if (ncp = dnlc_search(dp, name, namlen, hash)) { in dnlc_remove()
683 nc_rmhash(ncp); in dnlc_remove()
685 VN_RELE_DNLC(ncp->vp); in dnlc_remove()
686 VN_RELE_DNLC(ncp->dp); in dnlc_remove()
687 dnlc_free(ncp); in dnlc_remove()
700 ncache_t *ncp; in dnlc_purge() local
714 ncp = nch->hash_next; in dnlc_purge()
715 while (ncp != (ncache_t *)nch) { in dnlc_purge()
718 np = ncp->hash_next; in dnlc_purge()
719 nc_rele[index++] = ncp->vp; in dnlc_purge()
720 nc_rele[index++] = ncp->dp; in dnlc_purge()
722 nc_rmhash(ncp); in dnlc_purge()
723 dnlc_free(ncp); in dnlc_purge()
724 ncp = np; in dnlc_purge()
735 if (ncp != (ncache_t *)nch) { in dnlc_purge()
749 ncache_t *ncp; in dnlc_purge_vp() local
767 ncp = nch->hash_next; in dnlc_purge_vp()
768 while (ncp != (ncache_t *)nch) { in dnlc_purge_vp()
771 np = ncp->hash_next; in dnlc_purge_vp()
772 if (ncp->dp == vp || ncp->vp == vp) { in dnlc_purge_vp()
773 nc_rele[index++] = ncp->vp; in dnlc_purge_vp()
774 nc_rele[index++] = ncp->dp; in dnlc_purge_vp()
775 nc_rmhash(ncp); in dnlc_purge_vp()
776 dnlc_free(ncp); in dnlc_purge_vp()
779 ncp = np; in dnlc_purge_vp()
783 ncp = np; in dnlc_purge_vp()
796 if (ncp != (ncache_t *)nch) { in dnlc_purge_vp()
812 ncache_t *ncp; in dnlc_purge_vfsp() local
827 ncp = nch->hash_next; in dnlc_purge_vfsp()
828 while (ncp != (ncache_t *)nch) { in dnlc_purge_vfsp()
831 np = ncp->hash_next; in dnlc_purge_vfsp()
832 ASSERT(ncp->dp != NULL); in dnlc_purge_vfsp()
833 ASSERT(ncp->vp != NULL); in dnlc_purge_vfsp()
834 if ((ncp->dp->v_vfsp == vfsp) || in dnlc_purge_vfsp()
835 (ncp->vp->v_vfsp == vfsp)) { in dnlc_purge_vfsp()
837 nc_rele[index++] = ncp->vp; in dnlc_purge_vfsp()
838 nc_rele[index++] = ncp->dp; in dnlc_purge_vfsp()
839 nc_rmhash(ncp); in dnlc_purge_vfsp()
840 dnlc_free(ncp); in dnlc_purge_vfsp()
843 ncp = np; in dnlc_purge_vfsp()
850 ncp = np; in dnlc_purge_vfsp()
860 if (ncp != (ncache_t *)nch) { in dnlc_purge_vfsp()
883 ncache_t *ncp; in dnlc_fs_purge1() local
903 for (ncp = hp->hash_prev; in dnlc_fs_purge1()
904 ncp != (ncache_t *)hp; in dnlc_fs_purge1()
905 ncp = ncp->hash_prev) { in dnlc_fs_purge1()
906 vp = ncp->vp; in dnlc_fs_purge1()
911 if (ncp != (ncache_t *)hp) { in dnlc_fs_purge1()
912 nc_rmhash(ncp); in dnlc_fs_purge1()
914 VN_RELE_DNLC(ncp->dp); in dnlc_fs_purge1()
916 dnlc_free(ncp); in dnlc_fs_purge1()
933 ncache_t *ncp; in dnlc_search() local
937 for (ncp = hp->hash_next; ncp != (ncache_t *)hp; ncp = ncp->hash_next) { in dnlc_search()
938 if (ncp->hash == hash && in dnlc_search()
939 ncp->dp == dp && in dnlc_search()
940 ncp->namlen == namlen && in dnlc_search()
941 bcmp(ncp->name, name, namlen) == 0) in dnlc_search()
942 return (ncp); in dnlc_search()
974 ncache_t *ncp; in dnlc_get() local
980 ncp = kmem_alloc(NCACHE_SIZE(namlen), KM_NOSLEEP); in dnlc_get()
981 if (ncp == NULL) { in dnlc_get()
984 ncp->namlen = namlen; in dnlc_get()
987 return (ncp); in dnlc_get()
1002 ncache_t *ncp; in do_dnlc_reduce_cache() local
1044 for (cnt = 0, ncp = hp->hash_prev; ncp != (ncache_t *)hp; in do_dnlc_reduce_cache()
1045 ncp = ncp->hash_prev, cnt++) { in do_dnlc_reduce_cache()
1046 vp = ncp->vp; in do_dnlc_reduce_cache()
1062 ncp = hp->hash_prev; in do_dnlc_reduce_cache()
1064 vp = ncp->vp; in do_dnlc_reduce_cache()
1074 ncp = hp->hash_prev; /* pick the last one in the hash queue */ in do_dnlc_reduce_cache()
1076 vp = ncp->vp; in do_dnlc_reduce_cache()
1081 nc_rmhash(ncp); in do_dnlc_reduce_cache()
1084 VN_RELE_DNLC(ncp->dp); in do_dnlc_reduce_cache()
1085 dnlc_free(ncp); in do_dnlc_reduce_cache()