- const u32 orig_refcnt = orig_lte->out_refcnt;
-
- BUILD_BUG_ON(MAX_OPEN_STREAMS < ARRAY_LEN(orig_lte->inline_stream_owners));
-
- struct stream_owner *owners = orig_lte->stream_owners;
-
- /* Copy the stream's data from the temporary file to each of its
- * destinations.
- *
- * This is executed only in the very uncommon case that a
- * single-instance stream is being extracted to more than
- * MAX_OPEN_STREAMS locations! */
-
- memcpy(&tmpfile_lte, orig_lte, sizeof(struct wim_lookup_table_entry));
- tmpfile_lte.resource_location = RESOURCE_IN_FILE_ON_DISK;
- tmpfile_lte.file_on_disk = ctx->tmpfile_name;
- ret = 0;
- for (u32 i = 0; i < orig_refcnt; i++) {
-
- /* Note: it usually doesn't matter whether we pass the original
- * stream entry to callbacks provided by the extraction backend
- * as opposed to the tmpfile stream entry, since they shouldn't
- * actually read data from the stream other than through the
- * read_stream_prefix() call below. But for
- * WIMLIB_EXTRACT_FLAG_WIMBOOT mode on Windows it does matter
- * because it needs the original stream location in order to
- * create the external backing reference. */
-
- orig_lte->out_refcnt = 1;
- orig_lte->inline_stream_owners[0] = owners[i];
-
- ret = (*cbs->begin_stream)(orig_lte, cbs->begin_stream_ctx);
- if (ret)
- break;