struct swm_info *swm_info = _swm_info;
u64 stream_size;
- /* TODO */
- stream_size = lte->rspec->size_in_wim;
+ /* We want the compressed size of the stream, but use the uncompressed
+ * size if the compressed size is not available or not relevant. */
+ if (lte->resource_location == RESOURCE_IN_WIM &&
+ (!lte_is_partial(lte) || lte->rspec->size_in_wim < lte->size))
+ stream_size = lte->rspec->size_in_wim;
+ else
+ stream_size = lte->size;
/* - Start first part if no parts have been started so far;
* - Start next part if adding this stream exceeds maximum part size,