X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Fresource.c;h=cd098f92ad5e6edd5990aa68971e5351b1007237;hb=e1d56fdf58008263a04c3b61453dddaee51a9ea1;hp=5f97ed0223b3a3fc1c9b834796f33927d6ee68a2;hpb=63a5804943519281f206ca0fefacfe2b99fc9958;p=wimlib diff --git a/src/resource.c b/src/resource.c index 5f97ed02..cd098f92 100644 --- a/src/resource.c +++ b/src/resource.c @@ -191,11 +191,11 @@ static int read_compressed_resource(FILE *fp, u64 resource_compressed_size, if (chunk_entry_size == 4) { u32 *entries = (u32*)chunk_tab_buf; while (num_needed_chunk_entries--) - *chunk_tab_p++ = to_le32(*entries++); + *chunk_tab_p++ = le32_to_cpu(*entries++); } else { u64 *entries = (u64*)chunk_tab_buf; while (num_needed_chunk_entries--) - *chunk_tab_p++ = to_le64(*entries++); + *chunk_tab_p++ = le64_to_cpu(*entries++); } /* Done with the chunk table now. We must now seek to the first chunk @@ -693,11 +693,11 @@ finish_wim_resource_chunk_tab(struct chunk_table *chunk_tab, } if (chunk_tab->bytes_per_chunk_entry == 8) { - array_to_le64(chunk_tab->offsets, chunk_tab->num_chunks); + array_cpu_to_le64(chunk_tab->offsets, chunk_tab->num_chunks); } else { for (u64 i = 0; i < chunk_tab->num_chunks; i++) ((u32*)chunk_tab->offsets)[i] = - to_le32(chunk_tab->offsets[i]); + cpu_to_le32(chunk_tab->offsets[i]); } bytes_written = fwrite((u8*)chunk_tab->offsets + chunk_tab->bytes_per_chunk_entry, @@ -1013,7 +1013,7 @@ int extract_wim_resource_to_fd(const struct lookup_table_entry *lte, int fd, if (ret != 0) break; sha1_update(&ctx, buf, to_read); - if (full_write(fd, buf, to_read) < 0) { + if (full_write(fd, buf, to_read) < to_read) { ERROR_WITH_ERRNO("Error extracting WIM resource"); return WIMLIB_ERR_WRITE; } @@ -1092,8 +1092,8 @@ int write_dentry_resources(struct dentry *dentry, void *wim_p) printf("Writing streams for `%s'\n", dentry->full_path_utf8); } - for (unsigned i = 0; i <= dentry->inode->num_ads; i++) { - lte = inode_stream_lte(dentry->inode, i, w->lookup_table); + for (unsigned i = 0; i <= dentry->d_inode->num_ads; i++) { + lte = inode_stream_lte(dentry->d_inode, i, w->lookup_table); if (lte && ++lte->out_refcnt == 1) { ret = write_wim_resource(lte, w->out_fp, ctype, <e->output_resource_entry); @@ -1204,7 +1204,7 @@ int read_metadata_resource(WIMStruct *w, struct image_metadata *imd) dentry->prev = dentry; if (ret != 0) goto out_free_dentry_tree; - inode_add_dentry(dentry, dentry->inode); + inode_add_dentry(dentry, dentry->d_inode); /* Now read the entire directory entry tree into memory. */ DEBUG("Reading dentry tree"); @@ -1240,8 +1240,8 @@ int read_metadata_resource(WIMStruct *w, struct image_metadata *imd) DEBUG("Done reading image metadata"); - imd->root_dentry = dentry; - imd->inode_list = inode_list; + imd->root_dentry = dentry; + imd->inode_list = inode_list; goto out_free_buf; out_free_dentry_tree: free_dentry_tree(dentry, NULL); @@ -1334,8 +1334,9 @@ int write_metadata_resource(WIMStruct *w) if (ret != 0) goto out; - /* It's very likely the SHA1 message digest of the metadata resource, so - * re-insert the lookup table entry into the lookup table. */ + /* It's very likely the SHA1 message digest of the metadata resource + * changed, so re-insert the lookup table entry into the lookup table. + * */ lookup_table_unlink(w->lookup_table, lte); lookup_table_insert(w->lookup_table, lte);