struct blob_descriptor;
struct blob_table;
struct wim_dentry;
+struct wim_inode_extra;
struct wim_security_data;
struct wimfs_fd;
* 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 */
};
/*
hlist_for_each_entry((dentry), &(inode)->i_alias_list, d_alias_node)
/* Return an alias of the specified inode. */
-#define inode_first_dentry(inode) \
+#define inode_any_dentry(inode) \
hlist_entry(inode->i_alias_list.first, struct wim_dentry, d_alias_node)
/* Return the full path of an alias of the specified inode, or NULL if a full
* path could not be determined. */
-#define inode_first_full_path(inode) \
- dentry_full_path(inode_first_dentry(inode))
+#define inode_any_full_path(inode) \
+ dentry_full_path(inode_any_dentry(inode))
extern void
d_associate(struct wim_dentry *dentry, struct wim_inode *inode);