Home | History | Annotate | Download | only in kern

Lines Matching defs:vip

279 	vnode_impl_t *vip = VNODE_TO_VIMPL(vp);
283 enum vnode_state vstate = atomic_load_relaxed(&vip->vi_state);
296 (vip->vi_state == VS_LOADED || vip->vi_state == VS_BLOCKED)) ||
297 vip->vi_state == state) {
303 vstate_name(vip->vi_state), refcnt,
310 vnode_impl_t *vip = VNODE_TO_VIMPL(vp);
313 if (! VSTATE_VALID(vip->vi_state))
315 vstate_name(vip->vi_state), func, line);
317 return vip->vi_state;
323 vnode_impl_t *vip = VNODE_TO_VIMPL(vp);
326 if (! VSTATE_VALID(vip->vi_state))
328 vstate_name(vip->vi_state), func, line);
330 while (vip->vi_state != VS_LOADED && vip->vi_state != VS_RECLAIMED)
333 if (! VSTATE_VALID(vip->vi_state))
335 vstate_name(vip->vi_state), func, line);
343 vnode_impl_t *vip = VNODE_TO_VIMPL(vp);
355 if (vip->vi_state != from)
357 vstate_name(vip->vi_state), vstate_name(from), func, line);
360 vstate_name(vip->vi_state), gated, func, line);
370 atomic_store_relaxed(&vip->vi_state, to);
395 vnode_impl_t *vip = VNODE_TO_VIMPL(vp);
397 while (vip->vi_state != VS_LOADED && vip->vi_state != VS_RECLAIMED)
404 vnode_impl_t *vip = VNODE_TO_VIMPL(vp);
414 atomic_store_relaxed(&vip->vi_state, to);
450 vnode_impl_t *vip;
453 vip = pool_cache_get(vcache_pool, PR_WAITOK);
454 memset(vip, 0, sizeof(*vip));
455 vp = VIMPL_TO_VNODE(vip);
460 klist_init(&vip->vi_klist.vk_klist);
461 vp->v_klist = &vip->vi_klist;
462 vip->vi_state = VS_MARKER;
473 vnode_impl_t *vip;
475 vip = VNODE_TO_VIMPL(vp);
476 KASSERT(vip->vi_state == VS_MARKER);
479 klist_fini(&vip->vi_klist.vk_klist);
480 pool_cache_put(vcache_pool, vip);
516 vnode_impl_t *vip;
523 vip = VNODE_TO_VIMPL(vp);
524 if (listhd == vip->vi_lrulisthd &&
525 (getticks() - vip->vi_lrulisttm) < hz) {
531 if (vip->vi_lrulisthd != NULL)
532 TAILQ_REMOVE(vip->vi_lrulisthd, vip, vi_lrulist);
535 vip->vi_lrulisthd = listhd;
536 vip->vi_lrulisttm = getticks();
537 if (vip->vi_lrulisthd != NULL)
538 TAILQ_INSERT_TAIL(vip->vi_lrulisthd, vip, vi_lrulist);
583 vnode_impl_t *vip, *marker;
591 while ((vip = TAILQ_NEXT(marker, vi_lrulist))) {
593 TAILQ_INSERT_AFTER(listhd, vip, marker, vi_lrulist);
594 if (!vnis_marker(VIMPL_TO_VNODE(vip)))
598 return vip;
624 vnode_impl_t *vip;
629 for (vip = lru_iter_first(LRU_VRELE, &iter); vip != NULL;
630 vip = lru_iter_next(&iter)) {
631 if (VIMPL_TO_VNODE(vip)->v_mount != mp)
633 vrele_deferred(vip);
648 vnode_impl_t *vip;
655 for (vip = lru_iter_first(lists[ix], &iter); vip != NULL;
656 vip = lru_iter_next(&iter)) {
662 vp = VIMPL_TO_VNODE(vip);
728 vnode_impl_t *vip;
732 while ((vip = lru_iter_first(LRU_VRELE, &iter)) != NULL) {
733 for (skipped = 0; vip != NULL; vip = lru_iter_next(&iter)) {
734 mp = VIMPL_TO_VNODE(vip)->v_mount;
736 vrele_deferred(vip);
810 vrele_deferred(vnode_impl_t *vip)
815 KASSERT(vip->vi_lrulisthd == &lru_list[LRU_VRELE]);
817 vp = VIMPL_TO_VNODE(vip);
825 TAILQ_REMOVE(vip->vi_lrulisthd, vip, vi_lrulist);
826 vip->vi_lrulisthd = &lru_list[LRU_HOLD];
827 vip->vi_lrulisttm = getticks();
828 TAILQ_INSERT_TAIL(vip->vi_lrulisthd, vip, vi_lrulist);
1336 vnode_impl_t *vip;
1349 SLIST_FOREACH(vip, &vcache_hashtab[i], vi_hash) {
1387 vnode_impl_t *vip;
1397 while ((vip = SLIST_FIRST(&oldtab[i])) != NULL) {
1398 SLIST_REMOVE(&oldtab[i], vip, vnode_impl, vi_hash);
1399 hash = vcache_hash(&vip->vi_key);
1401 vip, vi_hash);
1412 vnode_impl_t *vip;
1417 SLIST_FOREACH(vip, hashp, vi_hash) {
1418 if (key->vk_mount != vip->vi_key.vk_mount)
1420 if (key->vk_key_len != vip->vi_key.vk_key_len)
1422 if (memcmp(key->vk_key, vip->vi_key.vk_key, key->vk_key_len))
1424 return vip;
1435 vnode_impl_t *vip;
1438 vip = pool_cache_get(vcache_pool, PR_WAITOK);
1439 vp = VIMPL_TO_VNODE(vip);
1440 memset(vip, 0, sizeof(*vip));
1442 rw_init(&vip->vi_lock);
1446 klist_init(&vip->vi_klist.vk_klist);
1447 vp->v_klist = &vip->vi_klist;
1455 vip->vi_state = VS_LOADING;
1459 return vip;
1468 vcache_dealloc(vnode_impl_t *vip)
1474 vp = VIMPL_TO_VNODE(vip);
1489 vcache_free(vnode_impl_t *vip)
1493 vp = VIMPL_TO_VNODE(vip);
1507 rw_destroy(&vip->vi_lock);
1509 KASSERT(vp->v_klist == &vip->vi_klist);
1510 klist_fini(&vip->vi_klist.vk_klist);
1513 pool_cache_put(vcache_pool, vip);
1587 vnode_impl_t *vip, *new_vip;
1599 vip = vcache_hash_lookup(&vcache_key, hash);
1602 if (__predict_true(vip != NULL)) {
1611 if (__predict_false(vip->vi_state == VS_LOADING)) {
1616 vp = VIMPL_TO_VNODE(vip);
1637 vip = vcache_hash_lookup(&vcache_key, hash);
1638 if (vip == NULL) {
1641 vip = new_vip;
1645 if (vip != new_vip) {
1693 vnode_impl_t *vip, *ovip;
1701 vip = vcache_alloc();
1702 vip->vi_key.vk_mount = mp;
1703 vp = VIMPL_TO_VNODE(vip);
1707 &vip->vi_key.vk_key_len, &vip->vi_key.vk_key);
1710 vcache_dealloc(vip);
1716 KASSERT((vip->vi_key.vk_key_len == 0) == (mp == dead_rootmount));
1717 if (vip->vi_key.vk_key_len > 0) {
1718 KASSERT(vip->vi_key.vk_key != NULL);
1719 hash = vcache_hash(&vip->vi_key);
1726 while ((ovip = vcache_hash_lookup(&vip->vi_key, hash))) {
1735 vip, vi_hash);
1765 vnode_impl_t *vip, *new_vip;
1782 vip = vcache_hash_lookup(&new_vcache_key, new_hash);
1783 if (vip != NULL) {
1791 vip = vcache_hash_lookup(&old_vcache_key, old_hash);
1792 KASSERT(vip != NULL);
1793 KASSERT(VIMPL_TO_VNODE(vip) == vp);
1794 KASSERT(vip->vi_key.vk_key != old_vcache_key.vk_key);
1795 vip->vi_key = old_vcache_key;
1810 vnode_impl_t *vip, *new_vip;
1826 vip = vcache_hash_lookup(&old_vcache_key, old_hash);
1827 KASSERT(vip != NULL);
1828 KASSERT(VIMPL_TO_VNODE(vip) == vp);
1839 vip->vi_key = new_vcache_key;
1842 vip, vnode_impl, vi_hash);
1844 vip, vi_hash);
1863 vnode_impl_t *vip = VNODE_TO_VIMPL(vp);
1875 temp_key_len = vip->vi_key.vk_key_len;
1893 vp->v_klist = &vip->vi_klist;
1914 if (vip->vi_key.vk_key_len > sizeof(temp_buf)) {
1919 if (vip->vi_key.vk_key_len > 0) {
1921 memcpy(temp_key, vip->vi_key.vk_key, temp_key_len);
1922 vip->vi_key.vk_key = temp_key;
1963 if (vip->vi_key.vk_key_len > 0) {
1965 hash = vcache_hash(&vip->vi_key);
1967 KASSERT(vip == vcache_hash_lookup(&vip->vi_key, hash));
1969 vip, vnode_impl, vi_hash);
2009 vnode_impl_t *vip = VNODE_TO_VIMPL(vp);
2019 hash = vcache_hash(&vip->vi_key);
2021 KASSERT(vip == vcache_hash_lookup(&vip->vi_key, hash));
2023 vip, vnode_impl, vi_hash);
2024 vip->vi_key.vk_mount = dead_rootmount;
2025 vip->vi_key.vk_key_len = 0;
2026 vip->vi_key.vk_key = NULL;