• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/contrib/openzfs/module/zfs/

Lines Matching defs:zf

112 dmu_zfetch_init(zfetch_t *zf, dnode_t *dno)
114 if (zf == NULL)
116 zf->zf_dnode = dno;
117 zf->zf_numstreams = 0;
119 list_create(&zf->zf_stream, sizeof (zstream_t),
122 mutex_init(&zf->zf_lock, NULL, MUTEX_DEFAULT, NULL);
133 dmu_zfetch_stream_remove(zfetch_t *zf, zstream_t *zs)
135 ASSERT(MUTEX_HELD(&zf->zf_lock));
136 list_remove(&zf->zf_stream, zs);
137 zf->zf_numstreams--;
148 dmu_zfetch_fini(zfetch_t *zf)
152 mutex_enter(&zf->zf_lock);
153 while ((zs = list_head(&zf->zf_stream)) != NULL)
154 dmu_zfetch_stream_remove(zf, zs);
155 mutex_exit(&zf->zf_lock);
156 list_destroy(&zf->zf_stream);
157 mutex_destroy(&zf->zf_lock);
159 zf->zf_dnode = NULL;
169 dmu_zfetch_stream_create(zfetch_t *zf, uint64_t blkid)
174 ASSERT(MUTEX_HELD(&zf->zf_lock));
179 for (zstream_t *zs = list_head(&zf->zf_stream);
181 zs_next = list_next(&zf->zf_stream, zs);
189 dmu_zfetch_stream_remove(zf, zs);
201 zf->zf_dnode->dn_maxblkid * zf->zf_dnode->dn_datablksz /
203 if (zf->zf_numstreams >= max_streams) {
215 zs->zs_fetch = zf;
221 zf->zf_numstreams++;
222 list_insert_head(&zf->zf_stream, zs);
247 dmu_zfetch_prepare(zfetch_t *zf, uint64_t blkid, uint64_t nblks,
256 spa_t *spa = zf->zf_dnode->dn_objset->os_spa;
278 rw_enter(&zf->zf_dnode->dn_struct_rwlock, RW_READER);
284 maxblkid = zf->zf_dnode->dn_maxblkid;
287 rw_exit(&zf->zf_dnode->dn_struct_rwlock);
290 mutex_enter(&zf->zf_lock);
297 for (zs = list_head(&zf->zf_stream); zs != NULL;
298 zs = list_next(&zf->zf_stream, zs)) {
314 dmu_zfetch_stream_remove(zf, zs);
315 mutex_exit(&zf->zf_lock);
317 rw_exit(&zf->zf_dnode->dn_struct_rwlock);
323 mutex_exit(&zf->zf_lock);
325 rw_exit(&zf->zf_dnode->dn_struct_rwlock);
334 dmu_zfetch_stream_create(zf, end_of_access_blkid);
335 mutex_exit(&zf->zf_lock);
337 rw_exit(&zf->zf_dnode->dn_struct_rwlock);
364 zfetch_max_distance >> zf->zf_dnode->dn_datablkshift;
386 max_dist_blks = zfetch_max_idistance >> zf->zf_dnode->dn_datablkshift;
405 mutex_exit(&zf->zf_lock);
408 rw_exit(&zf->zf_dnode->dn_struct_rwlock);
417 zfetch_t *zf = zs->zs_fetch;
436 mutex_enter(&zf->zf_lock);
445 mutex_exit(&zf->zf_lock);
449 epbs = zf->zf_dnode->dn_indblkshift - SPA_BLKPTRSHIFT;
465 rw_enter(&zf->zf_dnode->dn_struct_rwlock, RW_READER);
469 issued += dbuf_prefetch_impl(zf->zf_dnode, 0, blk,
474 issued += dbuf_prefetch_impl(zf->zf_dnode, 1, iblk,
480 rw_exit(&zf->zf_dnode->dn_struct_rwlock);
487 dmu_zfetch(zfetch_t *zf, uint64_t blkid, uint64_t nblks, boolean_t fetch_data,
492 zs = dmu_zfetch_prepare(zf, blkid, nblks, fetch_data, have_lock);