- /* A hash of the file's contents, or a pointer to the lookup table entry
- * for this dentry if the lookup table entries have been resolved.
- *
- * More specifically, this is for the un-named default file stream, as
- * opposed to the alternate (named) file streams, which may have their
- * own lookup table entries. */
- union {
- u8 i_hash[SHA1_HASH_SIZE];
- struct wim_lookup_table_entry *i_lte;
- };
+ /* Flag used to mark this inode as visited; this is used when visiting
+ * all the inodes in a dentry tree exactly once. It will be 0 by
+ * default and must be cleared following the tree traversal, even in
+ * error paths. */
+ u8 i_visited : 1;
+
+ /* For NTFS-3g extraction: Set after the DOS name for this inode has
+ * been extracted. */
+ u8 i_dos_name_extracted : 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;
+
+ /* Creation time, last access time, and last write time for this inode, in
+ * 100-nanosecond intervals since 12:00 a.m UTC January 1, 1601. They
+ * should correspond to the times gotten by calling GetFileTime() on
+ * Windows. */
+ u64 i_creation_time;
+ u64 i_last_access_time;
+ u64 i_last_write_time;
+
+ /* Corresponds to 'security_id' in `struct wim_dentry_on_disk': The
+ * index of this inode's security descriptor in the WIM image's table of
+ * security descriptors, or -1. Note: in verify_inode(), called
+ * whenever a WIM image is loaded, out-of-bounds indices are set to -1,
+ * so the extraction code does not need to do bounds checks. */
+ int32_t i_security_id;