Print this page
Possibility to physically reserve space without writing leaf blocks


 289 #define ZB_ZIL_OBJECT           (0ULL)
 290 #define ZB_ZIL_LEVEL            (-2LL)
 291 
 292 #define ZB_IS_ZERO(zb)                                          \
 293         ((zb)->zb_objset == 0 && (zb)->zb_object == 0 &&  \
 294         (zb)->zb_level == 0 && (zb)->zb_blkid == 0)
 295 #define ZB_IS_ROOT(zb)                          \
 296         ((zb)->zb_object == ZB_ROOT_OBJECT &&        \
 297         (zb)->zb_level == ZB_ROOT_LEVEL &&   \
 298         (zb)->zb_blkid == ZB_ROOT_BLKID)
 299 
 300 typedef struct zio_prop {
 301         enum zio_checksum       zp_checksum;
 302         enum zio_compress       zp_compress;
 303         dmu_object_type_t       zp_type;
 304         uint8_t                 zp_level;
 305         uint8_t                 zp_copies;
 306         boolean_t               zp_dedup;
 307         boolean_t               zp_dedup_verify;
 308         boolean_t               zp_nopwrite;

 309 } zio_prop_t;
 310 
 311 typedef struct zio_cksum_report zio_cksum_report_t;
 312 
 313 typedef void zio_cksum_finish_f(zio_cksum_report_t *rep,
 314     const void *good_data);
 315 typedef void zio_cksum_free_f(void *cbdata, size_t size);
 316 
 317 struct zio_bad_cksum;                           /* defined in zio_checksum.h */
 318 struct dnode_phys;
 319 
 320 struct zio_cksum_report {
 321         struct zio_cksum_report *zcr_next;
 322         nvlist_t                *zcr_ereport;
 323         nvlist_t                *zcr_detector;
 324         void                    *zcr_cbdata;
 325         size_t                  zcr_cbinfo;     /* passed to zcr_free() */
 326         uint64_t                zcr_align;
 327         uint64_t                zcr_length;
 328         zio_cksum_finish_f      *zcr_finish;




 289 #define ZB_ZIL_OBJECT           (0ULL)
 290 #define ZB_ZIL_LEVEL            (-2LL)
 291 
 292 #define ZB_IS_ZERO(zb)                                          \
 293         ((zb)->zb_objset == 0 && (zb)->zb_object == 0 &&  \
 294         (zb)->zb_level == 0 && (zb)->zb_blkid == 0)
 295 #define ZB_IS_ROOT(zb)                          \
 296         ((zb)->zb_object == ZB_ROOT_OBJECT &&        \
 297         (zb)->zb_level == ZB_ROOT_LEVEL &&   \
 298         (zb)->zb_blkid == ZB_ROOT_BLKID)
 299 
 300 typedef struct zio_prop {
 301         enum zio_checksum       zp_checksum;
 302         enum zio_compress       zp_compress;
 303         dmu_object_type_t       zp_type;
 304         uint8_t                 zp_level;
 305         uint8_t                 zp_copies;
 306         boolean_t               zp_dedup;
 307         boolean_t               zp_dedup_verify;
 308         boolean_t               zp_nopwrite;
 309         boolean_t               zp_zero_write;
 310 } zio_prop_t;
 311 
 312 typedef struct zio_cksum_report zio_cksum_report_t;
 313 
 314 typedef void zio_cksum_finish_f(zio_cksum_report_t *rep,
 315     const void *good_data);
 316 typedef void zio_cksum_free_f(void *cbdata, size_t size);
 317 
 318 struct zio_bad_cksum;                           /* defined in zio_checksum.h */
 319 struct dnode_phys;
 320 
 321 struct zio_cksum_report {
 322         struct zio_cksum_report *zcr_next;
 323         nvlist_t                *zcr_ereport;
 324         nvlist_t                *zcr_detector;
 325         void                    *zcr_cbdata;
 326         size_t                  zcr_cbinfo;     /* passed to zcr_free() */
 327         uint64_t                zcr_align;
 328         uint64_t                zcr_length;
 329         zio_cksum_finish_f      *zcr_finish;