+ }
+ } else {
+ /* no lookup table entry, so the file must be empty. Create a
+ * lookup table entry for the file. */
+ char *tmpfile_name;
+ int err;
+ int fd;
+
+ lte = new_lookup_table_entry();
+ if (!lte)
+ return -ENOMEM;
+
+ fd = create_staging_file(&tmpfile_name);
+
+ if (fd == -1) {
+ err = errno;
+ free(lte);
+ return -errno;
+ }
+ lte->resource_entry.original_size = 0;
+ randomize_byte_array(lte->hash, WIM_HASH_SIZE);
+ memcpy(dentry->hash, lte->hash, WIM_HASH_SIZE);
+ lte->staging_file_name = tmpfile_name;
+ lte->staging_fd = fd;
+ lte->staging_offset = 0;
+ lookup_table_insert(w->lookup_table, lte);