* points. */
u64 subdir_offset;
- /* Number of references to the dentry tree itself, as in multiple
- * WIMStructs */
- u32 refcnt;
-
/* Pointer to the UTF-16LE short filename (malloc()ed buffer) */
utf16lechar *short_name;
utf16lechar *file_name;
/* Full path of this dentry */
- tchar *full_path;
+ tchar *_full_path;
};
#define rbnode_dentry(node) container_of(node, struct wim_dentry, rb_node)
* link_count of them) */
struct list_head i_dentry;
- struct hlist_node i_hlist;
+ union {
+ struct hlist_node i_hlist;
+ struct list_head i_list;
+ };
- struct list_head i_lte_inode_list;
+ union {
+ /* Used during image extraction to build a list of inodes that
+ * share a certain stream */
+ struct list_head i_lte_inode_list;
+
+ /* Device number, used only during image capture */
+ u64 i_devno;
+ };
tchar *i_extracted_file;
int (*visitor)(struct wim_dentry*, void*),
void *args);
-extern int
-calculate_dentry_full_path(struct wim_dentry *dentry, void *ignore);
-
extern void
calculate_subdir_offsets(struct wim_dentry *dentry, u64 *subdir_offset_p);
extern int
print_dentry_full_path(struct wim_dentry *entry, void *ignore);
+extern tchar *
+dentry_full_path(struct wim_dentry *dentry);
+
+extern struct wim_inode *
+new_timeless_inode();
+
extern int
new_dentry(const tchar *name, struct wim_dentry **dentry_ret);
free_dentry_tree(struct wim_dentry *root,
struct wim_lookup_table *lookup_table);
-extern int
-increment_dentry_refcnt(struct wim_dentry *dentry, void *ignore);
-
extern void
unlink_dentry(struct wim_dentry *dentry);