X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Finode.c;h=034b9a11f3ec1d70b58df2f3a4eef1af147b2355;hb=a82a0fbc625a96aabd2a11e79fb6aedf1fe313b3;hp=16ae0d229915eb9a6fe65505cfda35a1a67bb5ee;hpb=33cc99f8a087d4232085234aee3f3134e15d5905;p=wimlib diff --git a/src/inode.c b/src/inode.c index 16ae0d22..034b9a11 100644 --- a/src/inode.c +++ b/src/inode.c @@ -56,8 +56,8 @@ new_inode(struct wim_dentry *dentry, bool set_timestamps) inode->i_security_id = -1; /*inode->i_nlink = 0;*/ - inode->i_not_rpfixed = 1; - INIT_LIST_HEAD(&inode->i_dentry); + inode->i_rp_flags = WIM_RP_FLAG_NOT_FIXED; + INIT_HLIST_HEAD(&inode->i_alias_list); inode->i_streams = inode->i_embedded_streams; if (set_timestamps) { u64 now = now_as_wim_timestamp(); @@ -85,8 +85,8 @@ free_inode(struct wim_inode *inode) 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); } @@ -108,7 +108,7 @@ d_associate(struct wim_dentry *dentry, struct wim_inode *inode) { wimlib_assert(!dentry->d_inode); - list_add_tail(&dentry->d_alias, &inode->i_dentry); + hlist_add_head(&dentry->d_alias_node, &inode->i_alias_list); dentry->d_inode = inode; inode->i_nlink++; } @@ -125,7 +125,7 @@ d_disassociate(struct wim_dentry *dentry) wimlib_assert(inode->i_nlink > 0); - list_del(&dentry->d_alias); + hlist_del(&dentry->d_alias_node); dentry->d_inode = NULL; inode->i_nlink--; @@ -267,7 +267,7 @@ inode_add_stream(struct wim_inode *inode, int stream_type, { if (inode->i_num_streams >= 0xFFFF) { ERROR("Inode has too many streams! Path=\"%"TS"\"", - inode_first_full_path(inode)); + inode_any_full_path(inode)); errno = EFBIG; return NULL; } @@ -492,14 +492,14 @@ blob_not_found_error(const struct wim_inode *inode, const u8 *hash) ERROR("\"%"TS"\": blob not found\n" " SHA-1 message digest of missing blob:\n" " %"TS"", - inode_first_full_path(inode), hashstr); + inode_any_full_path(inode), hashstr); } return WIMLIB_ERR_RESOURCE_NOT_FOUND; } /* - * Return the blob descriptor for the specified stream, or NULL if the blob for - * the stream is empty or not available. + * Return the blob descriptor for the specified stream, or NULL if the stream is + * empty or its blob is not available in @table. */ struct blob_descriptor * stream_blob(const struct wim_inode_stream *strm, const struct blob_table *table) @@ -523,9 +523,9 @@ stream_hash(const struct wim_inode_stream *strm) /* * Return the blob descriptor for the unnamed data stream of the inode, or NULL - * if the inode does not have an unnamed data stream, the blob for the inode's - * unnamed data stream is empty, or the blob for the inode's unnamed data stream - * is not available in @blob_table. + * if the inode does not have an unnamed data stream, the inode's unnamed data + * stream is empty, or the blob for the inode's unnamed data stream is not + * available in @blob_table. */ struct blob_descriptor * inode_get_blob_for_unnamed_data_stream(const struct wim_inode *inode,