/* Field to place this inode into a list. While reading a WIM image or
* adding files to a WIM image this is owned by the inode table;
* otherwise this links the inodes for the WIM image. */
- struct hlist_node i_hlist;
+ struct hlist_node i_hlist_node;
/* Number of dentries that are aliases for this inode. */
u32 i_nlink : 30;
* the case of reading a WIM image), or both an inode number and a device number
* (in the case of adding files to a WIM image). Also contains an extra list to
* hold inodes for which no additional hard link detection is desired. In both
- * cases the inodes are linked by i_hlist. */
+ * cases the inodes are linked by i_hlist_node. */
struct wim_inode_table {
struct hlist_head *array;
size_t num_entries;
/* Iterate over each inode in a WIM image */
#define image_for_each_inode(inode, imd) \
- hlist_for_each_entry(inode, &(imd)->inode_list, i_hlist)
+ hlist_for_each_entry(inode, &(imd)->inode_list, i_hlist_node)
/* Iterate over each inode in a WIM image (safe against inode removal) */
#define image_for_each_inode_safe(inode, tmp, imd) \
- hlist_for_each_entry_safe(inode, tmp, &(imd)->inode_list, i_hlist)
+ hlist_for_each_entry_safe(inode, tmp, &(imd)->inode_list, i_hlist_node)
/* Iterate over each blob in a WIM image that has not yet been hashed */
#define image_for_each_unhashed_blob(blob, imd) \
FREE(inode->i_streams);
if (inode->i_extra)
FREE(inode->i_extra);
- if (!hlist_unhashed(&inode->i_hlist))
- hlist_del(&inode->i_hlist);
+ if (!hlist_unhashed(&inode->i_hlist_node))
+ hlist_del(&inode->i_hlist_node);
FREE(inode);
}
struct wim_inode *inode;
if (d_inode->i_ino == 0) {
- hlist_add_head(&d_inode->i_hlist, &table->extra_inodes);
+ hlist_add_head(&d_inode->i_hlist_node, &table->extra_inodes);
return 0;
}
/* Try adding this dentry to an existing inode. */
pos = d_inode->i_ino % table->capacity;
- hlist_for_each_entry(inode, &table->array[pos], i_hlist) {
+ hlist_for_each_entry(inode, &table->array[pos], i_hlist_node) {
if (inode->i_ino != d_inode->i_ino) {
continue;
}
}
/* Keep this dentry's inode. */
- hlist_add_head(&d_inode->i_hlist, &table->array[pos]);
+ hlist_add_head(&d_inode->i_hlist_node, &table->array[pos]);
return 0;
}
struct wim_inode *inode;
u64 cur_ino = 1;
- hlist_for_each_entry(inode, inode_list, i_hlist)
+ hlist_for_each_entry(inode, inode_list, i_hlist_node)
inode->i_ino = cur_ino++;
}
ret = new_dentry_with_new_inode(name, false, &dentry);
if (ret)
return ret;
- hlist_add_head(&dentry->d_inode->i_hlist, &table->extra_inodes);
+ hlist_add_head(&dentry->d_inode->i_hlist_node, &table->extra_inodes);
} else {
size_t pos;
/* File that can be hardlinked--- search the table for an
* existing inode matching the inode number and device. */
pos = hash_u64(hash_u64(ino) + hash_u64(devno)) % table->capacity;
- hlist_for_each_entry(inode, &table->array[pos], i_hlist) {
+ hlist_for_each_entry(inode, &table->array[pos], i_hlist_node) {
if (inode->i_ino == ino && inode->i_devno == devno) {
/* Found; use the existing inode. */
return new_dentry_with_existing_inode(name, inode,
inode = dentry->d_inode;
inode->i_ino = ino;
inode->i_devno = devno;
- hlist_add_head(&inode->i_hlist, &table->array[pos]);
+ hlist_add_head(&inode->i_hlist_node, &table->array[pos]);
table->num_entries++;
}
*dentry_ret = dentry;
u64 cur_ino = 1;
/* Re-assign inode numbers in the existing list to avoid duplicates. */
- hlist_for_each_entry(inode, head, i_hlist)
+ hlist_for_each_entry(inode, head, i_hlist_node)
inode->i_ino = cur_ino++;
/* Assign inode numbers to the new inodes and move them to the image's
* inode list. */
for (size_t i = 0; i < table->capacity; i++) {
- hlist_for_each_entry_safe(inode, tmp, &table->array[i], i_hlist) {
+ hlist_for_each_entry_safe(inode, tmp, &table->array[i], i_hlist_node) {
inode->i_ino = cur_ino++;
inode->i_devno = 0;
- hlist_add_head(&inode->i_hlist, head);
+ hlist_add_head(&inode->i_hlist_node, head);
}
INIT_HLIST_HEAD(&table->array[i]);
}
- hlist_for_each_entry_safe(inode, tmp, &table->extra_inodes, i_hlist) {
+ hlist_for_each_entry_safe(inode, tmp, &table->extra_inodes, i_hlist_node) {
inode->i_ino = cur_ino++;
inode->i_devno = 0;
- hlist_add_head(&inode->i_hlist, head);
+ hlist_add_head(&inode->i_hlist_node, head);
}
INIT_HLIST_HEAD(&table->extra_inodes);
table->num_entries = 0;
}
}
- hlist_add_head(&inode->i_hlist,
+ hlist_add_head(&inode->i_hlist_node,
&wim_get_current_image_metadata(wimfs_ctx->wim)->inode_list);
dentry_add_child(parent, dentry);