@@ -169,11 +169,16 @@ dump_record(dmu_sendarg_t *dsp, void *payload, int payload_len)
169
169
fletcher_4_incremental_native (dsp -> dsa_drr ,
170
170
offsetof(dmu_replay_record_t , drr_u .drr_checksum .drr_checksum ),
171
171
& dsp -> dsa_zc );
172
- if (dsp -> dsa_drr -> drr_type != DRR_BEGIN ) {
172
+ if (dsp -> dsa_drr -> drr_type == DRR_BEGIN ) {
173
+ dsp -> dsa_sent_begin = B_TRUE ;
174
+ } else {
173
175
ASSERT (ZIO_CHECKSUM_IS_ZERO (& dsp -> dsa_drr -> drr_u .
174
176
drr_checksum .drr_checksum ));
175
177
dsp -> dsa_drr -> drr_u .drr_checksum .drr_checksum = dsp -> dsa_zc ;
176
178
}
179
+ if (dsp -> dsa_drr -> drr_type == DRR_END ) {
180
+ dsp -> dsa_sent_end = B_TRUE ;
181
+ }
177
182
fletcher_4_incremental_native (& dsp -> dsa_drr ->
178
183
drr_u .drr_checksum .drr_checksum ,
179
184
sizeof (zio_cksum_t ), & dsp -> dsa_zc );
@@ -979,6 +984,8 @@ dmu_send_impl(void *tag, dsl_pool_t *dp, dsl_dataset_t *to_ds,
979
984
list_remove (& to_ds -> ds_sendstreams , dsp );
980
985
mutex_exit (& to_ds -> ds_sendstream_lock );
981
986
987
+ VERIFY (err != 0 || (dsp -> dsa_sent_begin && dsp -> dsa_sent_end ));
988
+
982
989
kmem_free (drr , sizeof (dmu_replay_record_t ));
983
990
kmem_free (dsp , sizeof (dmu_sendarg_t ));
984
991
0 commit comments