Lines Matching defs:spc
354 scan_prefetch_ctx_t *spic_spc; /* spc for the callback */
1861 scan_prefetch_ctx_rele(scan_prefetch_ctx_t *spc, const void *tag)
1863 if (zfs_refcount_remove(&spc->spc_refcnt, tag) == 0) {
1864 zfs_refcount_destroy(&spc->spc_refcnt);
1865 kmem_free(spc, sizeof (scan_prefetch_ctx_t));
1872 scan_prefetch_ctx_t *spc;
1874 spc = kmem_alloc(sizeof (scan_prefetch_ctx_t), KM_SLEEP);
1875 zfs_refcount_create(&spc->spc_refcnt);
1876 zfs_refcount_add(&spc->spc_refcnt, tag);
1877 spc->spc_scn = scn;
1879 spc->spc_datablkszsec = dnp->dn_datablkszsec;
1880 spc->spc_indblkshift = dnp->dn_indblkshift;
1881 spc->spc_root = B_FALSE;
1883 spc->spc_datablkszsec = 0;
1884 spc->spc_indblkshift = 0;
1885 spc->spc_root = B_TRUE;
1888 return (spc);
1892 scan_prefetch_ctx_add_ref(scan_prefetch_ctx_t *spc, const void *tag)
1894 zfs_refcount_add(&spc->spc_refcnt, tag);
1914 dsl_scan_check_prefetch_resume(scan_prefetch_ctx_t *spc,
1917 zbookmark_phys_t *last_zb = &spc->spc_scn->scn_prefetch_bookmark;
1919 dnode_phys_t *dnp = (spc->spc_root) ? NULL : &tmp_dnp;
1926 tmp_dnp.dn_datablkszsec = spc->spc_datablkszsec;
1927 tmp_dnp.dn_indblkshift = spc->spc_indblkshift;
1936 dsl_scan_prefetch(scan_prefetch_ctx_t *spc, blkptr_t *bp, zbookmark_phys_t *zb)
1939 dsl_scan_t *scn = spc->spc_scn;
1952 if (dsl_scan_check_prefetch_resume(spc, zb))
1955 scan_prefetch_ctx_add_ref(spc, scn);
1957 spic->spic_spc = spc;
1970 scan_prefetch_ctx_rele(spc, scn);
1986 scan_prefetch_ctx_t *spc;
1993 spc = scan_prefetch_ctx_create(scn, dnp, FTAG);
1998 dsl_scan_prefetch(spc, &dnp->dn_blkptr[i], &zb);
2004 dsl_scan_prefetch(spc, DN_SPILL_BLKPTR(dnp), &zb);
2007 scan_prefetch_ctx_rele(spc, FTAG);
2015 scan_prefetch_ctx_t *spc = private;
2016 dsl_scan_t *scn = spc->spc_scn;
2039 dsl_scan_prefetch(spc, cbp, &czb);
2076 scan_prefetch_ctx_rele(spc, scn);
2430 scan_prefetch_ctx_t *spc;
2444 spc = scan_prefetch_ctx_create(scn, NULL, FTAG);
2445 dsl_scan_prefetch(spc, bp, &zb);
2446 scan_prefetch_ctx_rele(spc, FTAG);