zbookmark_t *czb;
int err;
- td = kmem_alloc(sizeof(traverse_data_t), KM_SLEEP);
- pd = kmem_zalloc(sizeof(prefetch_data_t), KM_SLEEP);
- czb = kmem_alloc(sizeof(zbookmark_t), KM_SLEEP);
+ td = kmem_alloc(sizeof(traverse_data_t), KM_PUSHPAGE);
+ pd = kmem_zalloc(sizeof(prefetch_data_t), KM_PUSHPAGE);
+ czb = kmem_alloc(sizeof(zbookmark_t), KM_PUSHPAGE);
td->td_spa = spa;
td->td_objset = ds ? ds->ds_object : 0;
err = 0;
return (err != 0 ? err : lasterr);
}
+
+#if defined(_KERNEL) && defined(HAVE_SPL)
+EXPORT_SYMBOL(traverse_dataset);
+EXPORT_SYMBOL(traverse_pool);
+
+module_param(zfs_pd_blks_max, int, 0644);
+MODULE_PARM_DESC(zfs_pd_blks_max, "Max number of blocks to prefetch");
+#endif