It needed to be done also when temp_output==NULL, because we had already
started sending it to parent, but async parent wasn't being finished.
o_stream_unref(&_file->output);
}
if (!success) {
- if (file->temp_output != NULL)
- o_stream_destroy(&file->temp_output);
- if (file->super_output != NULL)
+ if (file->super_output != NULL) {
+ /* no metawrap */
+ i_assert(file->temp_output == NULL);
+ fs_write_stream_abort(file->super, &file->super_output);
+ } else if (file->temp_output == NULL) {
+ /* finishing up */
+ i_assert(file->super_output == NULL);
fs_write_stream_abort(file->super, &file->super_output);
+ } else {
+ o_stream_destroy(&file->temp_output);
+ }
return -1;
}