* characters). Otherwise this will always be 0. */
u8 extraction_skipped : 1;
+ /* For extraction operations, this flag will be set on dentries in the
+ * tree being extracted. */
+ u8 in_extraction_tree : 1;
+
+ /* During extraction extractions, this flag will be set after the
+ * "skeleton" of the dentry has been extracted. */
u8 skeleton_extracted : 1;
/* When capturing from a NTFS volume using NTFS-3g, this flag is set on
/* Number of dentries that are aliases for this inode. */
u32 i_nlink;
- /* Number of alternate data streams associated with this inode */
+ /* Number of alternate data streams (ADS) associated with this inode */
u16 i_num_ads;
/* Flag that indicates whether this inode's streams have been
/* Set if the DOS name of an inode has already been extracted. */
u8 i_dos_name_extracted : 1;
+ /* 1 iff all ADS entries of this inode are named or if this inode
+ * has no ADS entries */
+ u8 i_canonical_streams : 1;
+
/* Pointer to a malloc()ed array of i_num_ads alternate data stream
* entries for this inode. */
struct wim_ads_entry *i_ads_entries;
}
extern u64
-dentry_correct_total_length(const struct wim_dentry *dentry);
+dentry_out_total_length(const struct wim_dentry *dentry);
extern int
for_dentry_in_tree(struct wim_dentry *root,
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);