}
/* Try adding this dentry to an existing inode. */
- pos = d_inode->i_ino % table->capacity;
+ pos = hash_inode(table, d_inode->i_ino, 0);
hlist_for_each_entry(inode, &table->array[pos], i_hlist_node) {
if (inode->i_ino != d_inode->i_ino) {
continue;
WARNING("Unsupported directory hard link "
"\"%"TS"\" <=> \"%"TS"\"",
dentry_full_path(dentry),
- inode_first_full_path(inode));
+ inode_any_full_path(inode));
} else if (params->num_dir_hard_links ==
MAX_DIR_HARD_LINK_WARNINGS + 1)
{
/* Keep this dentry's inode. */
hlist_add_head(&d_inode->i_hlist_node, &table->array[pos]);
+ if (++table->filled > table->capacity)
+ enlarge_inode_table(table);
return 0;
}
/* We use a hash table to map inode numbers to inodes. */
- ret = init_inode_table(¶ms.inode_table, 9001);
+ ret = init_inode_table(¶ms.inode_table, 64);
if (ret)
return ret;
build_inode_list(¶ms.inode_table, inode_list);
destroy_inode_table(¶ms.inode_table);
- if (unlikely(params.num_inconsistent_inodes))
- WARNING("Fixed %lu invalid hard links in WIM image",
- params.num_inconsistent_inodes);
-
if (unlikely(params.num_dir_hard_links))
WARNING("Ignoring %lu directory hard links",
params.num_dir_hard_links);