Lines Matching full:da
55 write_record(dmu_diffarg_t *da) in write_record() argument
60 if (da->da_ddr.ddr_type == DDR_NONE) { in write_record()
61 da->da_err = 0; in write_record()
65 fp = da->da_fp; in write_record()
66 da->da_err = zfs_file_write(fp, (caddr_t)&da->da_ddr, in write_record()
67 sizeof (da->da_ddr), &resid); in write_record()
68 *da->da_offp += sizeof (da->da_ddr); in write_record()
69 return (da->da_err); in write_record()
73 report_free_dnode_range(dmu_diffarg_t *da, uint64_t first, uint64_t last) in report_free_dnode_range() argument
76 if (da->da_ddr.ddr_type != DDR_FREE || in report_free_dnode_range()
77 first != da->da_ddr.ddr_last + 1) { in report_free_dnode_range()
78 if (write_record(da) != 0) in report_free_dnode_range()
79 return (da->da_err); in report_free_dnode_range()
80 da->da_ddr.ddr_type = DDR_FREE; in report_free_dnode_range()
81 da->da_ddr.ddr_first = first; in report_free_dnode_range()
82 da->da_ddr.ddr_last = last; in report_free_dnode_range()
85 da->da_ddr.ddr_last = last; in report_free_dnode_range()
90 report_dnode(dmu_diffarg_t *da, uint64_t object, dnode_phys_t *dnp) in report_dnode() argument
94 return (report_free_dnode_range(da, object, object)); in report_dnode()
96 if (da->da_ddr.ddr_type != DDR_INUSE || in report_dnode()
97 object != da->da_ddr.ddr_last + 1) { in report_dnode()
98 if (write_record(da) != 0) in report_dnode()
99 return (da->da_err); in report_dnode()
100 da->da_ddr.ddr_type = DDR_INUSE; in report_dnode()
101 da->da_ddr.ddr_first = da->da_ddr.ddr_last = object; in report_dnode()
104 da->da_ddr.ddr_last = object; in report_dnode()
117 dmu_diffarg_t *da = arg; in diff_cb() local
131 err = report_free_dnode_range(da, dnobj, in diff_cb()
154 err = report_dnode(da, dnobj, blk+i); in diff_cb()
171 dmu_diffarg_t da; in dmu_diff() local
212 da.da_fp = fp; in dmu_diff()
213 da.da_offp = offp; in dmu_diff()
214 da.da_ddr.ddr_type = DDR_NONE; in dmu_diff()
215 da.da_ddr.ddr_first = da.da_ddr.ddr_last = 0; in dmu_diff()
216 da.da_err = 0; in dmu_diff()
228 TRAVERSE_LOGICAL, diff_cb, &da); in dmu_diff()
231 da.da_err = error; in dmu_diff()
233 /* we set the da.da_err we return as side-effect */ in dmu_diff()
234 (void) write_record(&da); in dmu_diff()
240 return (da.da_err); in dmu_diff()