inode = dentry->d_inode;
- wimlib_assert(inode->i_resolved);
+ if (!inode->i_resolved)
+ if (inode_resolve_ltes(inode, w->lookup_table))
+ return -EIO;
if (!(lookup_flags & LOOKUP_FLAG_DIRECTORY_OK)
&& inode_is_directory(inode))
int
inode_resolve_ltes(struct wim_inode *inode, struct wim_lookup_table *table)
{
- int ret;
const u8 *hash;
if (!inode->i_resolved) {
* assign inode numbers */
DEBUG("Resolving lookup table entries and assigning inode numbers");
ctx.next_ino = 1;
- image_for_each_inode(inode, imd) {
- ret = inode_resolve_ltes(inode, wim->lookup_table);
- if (ret)
- goto out_delete_staging_dir;
+ image_for_each_inode(inode, imd)
inode->i_ino = ctx.next_ino++;
- }
DEBUG("(next_ino = %"PRIu64")", ctx.next_ino);
DEBUG("Calling fuse_main()");
/* Try to delete the staging directory if a deletion wasn't yet
* attempted due to an earlier error */
-out_delete_staging_dir:
if (ctx.staging_dir_name)
delete_staging_dir(&ctx);
out_free_dir_copy: