struct blob_descriptor;
struct blob_table;
struct wim_dentry;
+struct wim_inode_extra;
struct wim_security_data;
struct wimfs_fd;
u32 i_attributes;
/* Root of a balanced binary search tree storing the child directory
- * entries of this inode, if any. Keyed by wim_dentry->d_name, case
- * sensitively. If this inode is not a directory or if it has no
- * children then this will be an empty tree (NULL). */
+ * entries of this inode, if any, indexed by filename. If this inode is
+ * not a directory or if it has no children then this will be an empty
+ * tree (NULL). */
struct avl_tree_node *i_children;
- /* Root of a balanced binary search tree storing the child directory
- * entries of this inode, if any. Keyed by wim_dentry->d_name, case
- * insensitively. If this inode is not a directory or if it has no
- * children then this will be an empty tree (NULL). */
- struct avl_tree_node *i_children_ci;
-
/* List of dentries that are aliases for this inode. There will be
* i_nlink dentries in this list. */
struct hlist_head i_alias_list;
* dentry. This should be a series of tagged items, each of which
* represents a bit of extra metadata, such as the file's object ID.
* See tagged_items.c for more information. */
- void *i_extra;
-
- /* Size of @i_extra buffer in bytes. If 0, there is no extra data. */
- size_t i_extra_size;
+ struct wim_inode_extra *i_extra;
/* 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.
struct wim_dentry *i_first_extraction_alias;
#ifdef WITH_NTFS_3G
- /* In NTFS-3g extraction mode, this is set to the Master
+ /* In NTFS-3G extraction mode, this is set to the Master
* File Table (MFT) number of the NTFS file that was
* created for this inode. */
u64 i_mft_no;
/* Next stream ID to be assigned */
u32 i_next_stream_id;
+
+#ifdef ENABLE_TEST_SUPPORT
+ struct wim_inode *i_corresponding;
+#endif
+};
+
+/* Optional extra data for a WIM inode */
+struct wim_inode_extra {
+ size_t size; /* Size of the extra data in bytes */
+ u8 data[]; /* The extra data */
};
/*
*/
#define WIM_IO_REPARSE_TAG_MOUNT_POINT 0xA0000003
#define WIM_IO_REPARSE_TAG_SYMLINK 0xA000000C
+#define WIM_IO_REPARSE_TAG_DEDUP 0x80000013
#define WIM_IO_REPARSE_TAG_WOF 0x80000017
/* Flags for the rp_flags field. Currently the only known flag is NOT_FIXED,