- w->write_metadata = false;
-
- struct split_args args = {
- .w = w,
- .swm_base_name = name,
- .swm_base_name_len = swm_base_name_len,
- .swm_suffix = swm_suffix,
- .lte_chain_head = lte_chain_head,
- .lte_chain_tail = lte_chain_tail,
- .part_number = 1,
- .write_flags = write_flags,
- .size_remaining = size_remaining,
- .part_size = part_size,
- .total_bytes = total_bytes,
- .total_bytes_written = total_bytes_written,
- };
-
- ret = for_lookup_table_entry(w->lookup_table, copy_resource_to_swm, &args);
- if (ret != 0)
- return ret;
-
- ret = finish_swm(w, args.lte_chain_head, write_flags);
- if (ret != 0)
- return ret;
-
-
- /* The swms are all ready now, except the total_parts and part_number
- * fields in their headers are wrong (we don't know the total parts
- * until they are all written). Fix them. */
- int total_parts = args.part_number;
- for (int i = 1; i <= total_parts; i++) {
- const char *p;
- if (i == 1) {
- p = swm_name;
- } else {
- sprintf(name + swm_base_name_len, "%d", i);
- p = strcat(name, swm_suffix);
- }