Lines Matching defs:zf

118 dmu_zfetch_init(zfetch_t *zf, dnode_t *dno)
120 if (zf == NULL)
123 zf->zf_dnode = dno;
125 list_create(&zf->zf_stream, sizeof (zstream_t),
128 rw_init(&zf->zf_rwlock, NULL, RW_DEFAULT, NULL);
132 dmu_zfetch_stream_remove(zfetch_t *zf, zstream_t *zs)
134 ASSERT(RW_WRITE_HELD(&zf->zf_rwlock));
135 list_remove(&zf->zf_stream, zs);
145 dmu_zfetch_fini(zfetch_t *zf)
149 ASSERT(!RW_LOCK_HELD(&zf->zf_rwlock));
151 rw_enter(&zf->zf_rwlock, RW_WRITER);
152 while ((zs = list_head(&zf->zf_stream)) != NULL)
153 dmu_zfetch_stream_remove(zf, zs);
154 rw_exit(&zf->zf_rwlock);
155 list_destroy(&zf->zf_stream);
156 rw_destroy(&zf->zf_rwlock);
158 zf->zf_dnode = NULL;
168 dmu_zfetch_stream_create(zfetch_t *zf, uint64_t blkid)
173 ASSERT(RW_WRITE_HELD(&zf->zf_rwlock));
178 for (zstream_t *zs = list_head(&zf->zf_stream);
180 zs_next = list_next(&zf->zf_stream, zs);
183 dmu_zfetch_stream_remove(zf, zs);
197 zf->zf_dnode->dn_maxblkid * zf->zf_dnode->dn_datablksz /
211 list_insert_head(&zf->zf_stream, zs);
223 dmu_zfetch(zfetch_t *zf, uint64_t blkid, uint64_t nblks, boolean_t fetch_data)
241 rw_enter(&zf->zf_rwlock, RW_READER);
243 for (zs = list_head(&zf->zf_stream); zs != NULL;
244 zs = list_next(&zf->zf_stream, zs)) {
265 if (rw_tryupgrade(&zf->zf_rwlock))
266 dmu_zfetch_stream_create(zf, end_of_access_blkid);
267 rw_exit(&zf->zf_rwlock);
289 zfetch_max_distance >> zf->zf_dnode->dn_datablkshift;
311 max_dist_blks = zfetch_max_idistance >> zf->zf_dnode->dn_datablkshift;
324 epbs = zf->zf_dnode->dn_indblkshift - SPA_BLKPTRSHIFT;
331 rw_exit(&zf->zf_rwlock);
340 dbuf_prefetch(zf->zf_dnode, 0, pf_start + i,
344 dbuf_prefetch(zf->zf_dnode, 1, iblk,