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

Lines Matching defs:zs

126 dmu_zfetch_stream_fini(zstream_t *zs)
128 ASSERT(!list_link_active(&zs->zs_node));
129 kmem_free(zs, sizeof (*zs));
133 dmu_zfetch_stream_remove(zfetch_t *zf, zstream_t *zs)
136 list_remove(&zf->zf_stream, zs);
139 if (zfs_refcount_remove(&zs->zs_refs, NULL) == 0)
140 dmu_zfetch_stream_fini(zs);
150 zstream_t *zs;
153 while ((zs = list_head(&zf->zf_stream)) != NULL)
154 dmu_zfetch_stream_remove(zf, zs);
179 for (zstream_t *zs = list_head(&zf->zf_stream);
180 zs != NULL; zs = zs_next) {
181 zs_next = list_next(&zf->zf_stream, zs);
185 if (zfs_refcount_count(&zs->zs_refs) != 1)
187 if (((now - zs->zs_atime) / NANOSEC) >
189 dmu_zfetch_stream_remove(zf, zs);
208 zstream_t *zs = kmem_zalloc(sizeof (*zs), KM_SLEEP);
209 zs->zs_blkid = blkid;
210 zs->zs_pf_blkid1 = blkid;
211 zs->zs_pf_blkid = blkid;
212 zs->zs_ipf_blkid1 = blkid;
213 zs->zs_ipf_blkid = blkid;
214 zs->zs_atime = now;
215 zs->zs_fetch = zf;
216 zs->zs_missed = B_FALSE;
217 zfs_refcount_create(&zs->zs_callers);
218 zfs_refcount_create(&zs->zs_refs);
220 zfs_refcount_add(&zs->zs_refs, NULL);
222 list_insert_head(&zf->zf_stream, zs);
228 zstream_t *zs = arg;
230 if (zfs_refcount_remove(&zs->zs_refs, NULL) == 0)
231 dmu_zfetch_stream_fini(zs);
250 zstream_t *zs;
297 for (zs = list_head(&zf->zf_stream); zs != NULL;
298 zs = list_next(&zf->zf_stream, zs)) {
299 if (blkid == zs->zs_blkid) {
301 } else if (blkid + 1 == zs->zs_blkid) {
313 if (zs != NULL)
314 dmu_zfetch_stream_remove(zf, zs);
329 if (zs == NULL) {
352 pf_start = MAX(zs->zs_pf_blkid, end_of_access_blkid);
353 if (zs->zs_pf_blkid1 < end_of_access_blkid)
354 zs->zs_pf_blkid1 = end_of_access_blkid;
355 if (zs->zs_ipf_blkid1 < end_of_access_blkid)
356 zs->zs_ipf_blkid1 = end_of_access_blkid;
371 pf_ahead_blks = zs->zs_pf_blkid - blkid + nblks;
378 zs->zs_pf_blkid = pf_start + pf_nblks;
385 ipf_start = MAX(zs->zs_ipf_blkid, zs->zs_pf_blkid);
394 pf_ahead_blks = zs->zs_ipf_blkid - blkid + nblks + pf_nblks;
395 max_blks = max_dist_blks - (ipf_start - zs->zs_pf_blkid);
397 zs->zs_ipf_blkid = ipf_start + ipf_nblks;
399 zs->zs_blkid = end_of_access_blkid;
401 zs->zs_atime = gethrtime();
402 zfs_refcount_add(&zs->zs_refs, NULL);
404 zfs_refcount_add(&zs->zs_callers, NULL);
411 return (zs);
415 dmu_zfetch_run(zstream_t *zs, boolean_t missed, boolean_t have_lock)
417 zfetch_t *zf = zs->zs_fetch;
422 zs->zs_missed = missed;
429 if (zfs_refcount_remove(&zs->zs_callers, NULL) != 0) {
431 if (zfs_refcount_remove(&zs->zs_refs, NULL) == 0)
432 dmu_zfetch_stream_fini(zs);
437 if (zs->zs_missed) {
438 pf_start = zs->zs_pf_blkid1;
439 pf_end = zs->zs_pf_blkid1 = zs->zs_pf_blkid;
443 ipf_start = MAX(zs->zs_pf_blkid1, zs->zs_ipf_blkid1);
444 ipf_end = zs->zs_ipf_blkid1 = zs->zs_ipf_blkid;
456 zfs_refcount_add_many(&zs->zs_refs, issued - 1, NULL);
459 if (zfs_refcount_remove(&zs->zs_refs, NULL) == 0)
460 dmu_zfetch_stream_fini(zs);
471 dmu_zfetch_stream_done, zs);
476 dmu_zfetch_stream_done, zs);
490 zstream_t *zs;
492 zs = dmu_zfetch_prepare(zf, blkid, nblks, fetch_data, have_lock);
493 if (zs)
494 dmu_zfetch_run(zs, missed, have_lock);