usr/src/uts/common/fs/zfs/dmu_traverse.c
changeset 11935 538c866aaac6
parent 11724 a2728800460e
child 12296 7cf402a7f374
equal deleted inserted replaced
11934:fdae577692c4 11935:538c866aaac6
    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