Lines Matching refs:vc

137 vdev_cache_evict(vdev_cache_t *vc, vdev_cache_entry_t *ve)  in vdev_cache_evict()  argument
139 ASSERT(MUTEX_HELD(&vc->vc_lock)); in vdev_cache_evict()
143 avl_remove(&vc->vc_lastused_tree, ve); in vdev_cache_evict()
144 avl_remove(&vc->vc_offset_tree, ve); in vdev_cache_evict()
157 vdev_cache_t *vc = &zio->io_vd->vdev_cache; in vdev_cache_allocate() local
161 ASSERT(MUTEX_HELD(&vc->vc_lock)); in vdev_cache_allocate()
170 if ((avl_numnodes(&vc->vc_lastused_tree) << zfs_vdev_cache_bshift) > in vdev_cache_allocate()
172 ve = avl_first(&vc->vc_lastused_tree); in vdev_cache_allocate()
176 vdev_cache_evict(vc, ve); in vdev_cache_allocate()
184 avl_add(&vc->vc_offset_tree, ve); in vdev_cache_allocate()
185 avl_add(&vc->vc_lastused_tree, ve); in vdev_cache_allocate()
191 vdev_cache_hit(vdev_cache_t *vc, vdev_cache_entry_t *ve, zio_t *zio) in vdev_cache_hit() argument
195 ASSERT(MUTEX_HELD(&vc->vc_lock)); in vdev_cache_hit()
199 avl_remove(&vc->vc_lastused_tree, ve); in vdev_cache_hit()
201 avl_add(&vc->vc_lastused_tree, ve); in vdev_cache_hit()
215 vdev_cache_t *vc = &vd->vdev_cache; in vdev_cache_fill() local
224 mutex_enter(&vc->vc_lock); in vdev_cache_fill()
239 vdev_cache_hit(vc, ve, pio); in vdev_cache_fill()
242 vdev_cache_evict(vc, ve); in vdev_cache_fill()
244 mutex_exit(&vc->vc_lock); in vdev_cache_fill()
253 vdev_cache_t *vc = &zio->io_vd->vdev_cache; in vdev_cache_read() local
275 mutex_enter(&vc->vc_lock); in vdev_cache_read()
278 ve = avl_find(&vc->vc_offset_tree, &ve_search, NULL); in vdev_cache_read()
282 mutex_exit(&vc->vc_lock); in vdev_cache_read()
289 mutex_exit(&vc->vc_lock); in vdev_cache_read()
294 vdev_cache_hit(vc, ve, zio); in vdev_cache_read()
297 mutex_exit(&vc->vc_lock); in vdev_cache_read()
305 mutex_exit(&vc->vc_lock); in vdev_cache_read()
317 mutex_exit(&vc->vc_lock); in vdev_cache_read()
330 vdev_cache_t *vc = &zio->io_vd->vdev_cache; in vdev_cache_write() local
340 mutex_enter(&vc->vc_lock); in vdev_cache_write()
343 ve = avl_find(&vc->vc_offset_tree, &ve_search, &where); in vdev_cache_write()
346 ve = avl_nearest(&vc->vc_offset_tree, where, AVL_AFTER); in vdev_cache_write()
359 ve = AVL_NEXT(&vc->vc_offset_tree, ve); in vdev_cache_write()
361 mutex_exit(&vc->vc_lock); in vdev_cache_write()
367 vdev_cache_t *vc = &vd->vdev_cache; in vdev_cache_purge() local
370 mutex_enter(&vc->vc_lock); in vdev_cache_purge()
371 while ((ve = avl_first(&vc->vc_offset_tree)) != NULL) in vdev_cache_purge()
372 vdev_cache_evict(vc, ve); in vdev_cache_purge()
373 mutex_exit(&vc->vc_lock); in vdev_cache_purge()
379 vdev_cache_t *vc = &vd->vdev_cache; in vdev_cache_init() local
381 mutex_init(&vc->vc_lock, NULL, MUTEX_DEFAULT, NULL); in vdev_cache_init()
383 avl_create(&vc->vc_offset_tree, vdev_cache_offset_compare, in vdev_cache_init()
387 avl_create(&vc->vc_lastused_tree, vdev_cache_lastused_compare, in vdev_cache_init()
395 vdev_cache_t *vc = &vd->vdev_cache; in vdev_cache_fini() local
399 avl_destroy(&vc->vc_offset_tree); in vdev_cache_fini()
400 avl_destroy(&vc->vc_lastused_tree); in vdev_cache_fini()
402 mutex_destroy(&vc->vc_lock); in vdev_cache_fini()