]> wimlib.net Git - wimlib/blobdiff - include/wimlib/dentry.h
wimlib-imagex, wimlib: Optimize appending new image as update of existing
[wimlib] / include / wimlib / dentry.h
index 09de869a99e07464fb5eaf8909bd60257f60146d..2a40ef42ff64828c6b9861de27365e5ba0dd495d 100644 (file)
@@ -363,24 +363,34 @@ struct wim_inode {
                 * to 0 otherwise.  */
                u64 i_devno;
 
-               /* Used only during image extraction: pointer to the first path
-                * (malloc()ed buffer) at which this inode has been extracted.
-                * Freed and set to NULL after the extraction is done (either
-                * success or failure).  */
-               tchar *i_extracted_file;
+               struct {
+
+                       /* Used only during image extraction: pointer to the first path
+                        * (malloc()ed buffer) at which this inode has been extracted.
+                        * Freed and set to NULL after the extraction is done (either
+                        * success or failure).  */
+                       tchar *i_extracted_file;
+
+                       /** Used only during image extraction: "cookie" that
+                        * identifies this extracted file (inode), for example
+                        * an inode number.  Only used if supported by the
+                        * extraction mode.  */
+                       u64 extract_cookie;
+               };
 
 #ifdef WITH_FUSE
                /* Used only during image mount:  Table of file descriptors that
                 * have been opened to this inode.  The table is automatically
                 * freed when the last file descriptor is closed.  */
-               struct {
-                       struct wimfs_fd **i_fds;
-                       u16 i_num_opened_fds;
-                       u16 i_num_allocated_fds;
-               };
+               struct wimfs_fd **i_fds;
 #endif
        };
 
+#ifdef WITH_FUSE
+       u16 i_num_opened_fds;
+       u16 i_num_allocated_fds;
+#endif
+
        /* Next alternate data stream ID to be assigned */
        u32 i_next_stream_id;
 };
@@ -482,6 +492,9 @@ new_dentry_with_inode(const tchar *name, struct wim_dentry **dentry_ret);
 extern int
 new_dentry_with_timeless_inode(const tchar *name, struct wim_dentry **dentry_ret);
 
+extern void
+dentry_tree_clear_inode_visited(struct wim_dentry *root);
+
 extern int
 new_filler_directory(const tchar *name, struct wim_dentry **dentry_ret);