]> wimlib.net Git - wimlib/blobdiff - src/dentry.h
extract_wim_resource() refactor
[wimlib] / src / dentry.h
index 2e2ba8bf23d128529a4b5b2702f76cdfc539f87a..180897040d49747f1ce75898a9df57e30b9016f4 100644 (file)
@@ -157,6 +157,8 @@ struct dentry {
        u16 file_name_utf8_len;
 
        u8 is_extracted : 1;
+       u8 visited : 1;
+       u8 canonical : 1;
 
        /* Byte 40 */
 
@@ -253,7 +255,7 @@ struct inode {
        u8 verified : 1;
 
        /* temporary flag */
-       u8 found    : 1;
+       u8 visited    : 1;
 
        /* Number of alternate data streams associated with this inode */
        u16 num_ads;
@@ -286,7 +288,11 @@ struct inode {
        /* List of dentries that reference this inode (there should be
         * link_count of them) */
        struct list_head dentry_list;
+
        struct hlist_node hlist;
+
+       struct list_head lte_inode_list;
+
        char *extracted_file;
 
        /* Root of a red-black tree storing the children of this inode (if
@@ -319,11 +325,6 @@ struct inode {
                list_add(&(dentry)->inode_dentry_list, &(inode)->dentry_list);  \
        })
 
-static inline bool dentry_is_extracted(const struct dentry *dentry)
-{
-       return dentry->is_extracted;
-}
-
 static inline bool dentry_is_first_in_inode(const struct dentry *dentry)
 {
        return container_of(dentry->d_inode->dentry_list.next,
@@ -333,9 +334,6 @@ static inline bool dentry_is_first_in_inode(const struct dentry *dentry)
 
 extern u64 dentry_correct_total_length(const struct dentry *dentry);
 
-extern int inode_to_stbuf(const struct inode *inode,
-                         struct lookup_table_entry *lte, struct stat *stbuf);
-
 extern int for_dentry_in_tree(struct dentry *root,
                              int (*visitor)(struct dentry*, void*),
                              void *args);
@@ -380,9 +378,6 @@ extern void unlink_dentry(struct dentry *dentry);
 extern bool dentry_add_child(struct dentry * restrict parent,
                             struct dentry * restrict child);
 
-extern int verify_dentry(struct dentry *dentry, void *wim);
-
-
 extern struct ads_entry *inode_get_ads_entry(struct inode *inode,
                                             const char *stream_name,
                                             u16 *idx_ret);
@@ -426,11 +421,6 @@ static inline bool inode_is_symlink(const struct inode *inode)
                     inode->reparse_tag == WIM_IO_REPARSE_TAG_MOUNT_POINT);
 }
 
-static inline bool dentry_is_symlink(const struct dentry *dentry)
-{
-       return inode_is_symlink(dentry->d_inode);
-}
-
 static inline bool inode_is_regular_file(const struct inode *inode)
 {
        return !inode_is_directory(inode) && !inode_is_symlink(inode);