equal
deleted
inserted
replaced
31 #include <sys/dsl_pool.h> |
31 #include <sys/dsl_pool.h> |
32 #include <sys/dnode.h> |
32 #include <sys/dnode.h> |
33 #include <sys/spa.h> |
33 #include <sys/spa.h> |
34 #include <sys/zio.h> |
34 #include <sys/zio.h> |
35 #include <sys/dmu_impl.h> |
35 #include <sys/dmu_impl.h> |
|
36 #include <sys/sa.h> |
|
37 #include <sys/sa_impl.h> |
36 #include <sys/callb.h> |
38 #include <sys/callb.h> |
37 |
39 |
38 struct prefetch_data { |
40 struct prefetch_data { |
39 kmutex_t pd_mtx; |
41 kmutex_t pd_mtx; |
40 kcondvar_t pd_cv; |
42 kcondvar_t pd_cv; |
270 (blkptr_t *)&dnp->dn_blkptr[j], &czb); |
272 (blkptr_t *)&dnp->dn_blkptr[j], &czb); |
271 if (err) { |
273 if (err) { |
272 if (!hard) |
274 if (!hard) |
273 break; |
275 break; |
274 lasterr = err; |
276 lasterr = err; |
|
277 } |
|
278 if (dnp->dn_flags & DNODE_FLAG_SPILL_BLKPTR) { |
|
279 SET_BOOKMARK(&czb, objset, |
|
280 object, 0, DMU_SPILL_BLKID); |
|
281 err = traverse_visitbp(td, dnp, buf, |
|
282 (blkptr_t *)&dnp->dn_spill, &czb); |
|
283 if (err) { |
|
284 if (!hard) |
|
285 break; |
|
286 lasterr = err; |
|
287 } |
275 } |
288 } |
276 } |
289 } |
277 return (err != 0 ? err : lasterr); |
290 return (err != 0 ? err : lasterr); |
278 } |
291 } |
279 |
292 |