]> wimlib.net Git - wimlib/blobdiff - include/wimlib/dentry.h
Remove verify_dentry(); separate refcnt recalc. from verify_inode()
[wimlib] / include / wimlib / dentry.h
index e515abec732b26c722d83c0b10ecad362a71c331..dfb5a95be76b5301f6ea31c41b235b44bc9be28b 100644 (file)
@@ -18,6 +18,7 @@ struct wim_lookup_table;
 struct wim_lookup_table_entry;
 struct wimfs_fd;
 struct wim_inode;
+struct wim_security_data;
 
 /* Size of the struct wim_dentry up to and including the file_name_len. */
 #define WIM_DENTRY_DISK_SIZE    102
@@ -157,10 +158,13 @@ struct wim_dentry {
        /* Does this dentry need to be extracted? */
        u8 needs_extraction : 1;
 
+       u8 not_extracted : 1;
+
        /* Only used during NTFS capture */
        u8 is_win32_name : 1;
 
-       u8 not_extracted : 1;
+       /* Set to 1 if an inode has multiple DOS names. */
+       u8 dos_name_invalid : 1;
 
        /* Temporary list */
        struct list_head tmp_list;
@@ -249,9 +253,6 @@ struct wim_inode {
         * (This is not an on-disk field.) */
        u8 i_resolved : 1;
 
-       /* %true iff verify_inode() has run on this inode. */
-       u8 i_verified : 1;
-
        u8 i_visited : 1;
 
        /* Used only in NTFS-mode extraction */
@@ -304,8 +305,8 @@ struct wim_inode {
        /* Device number, used only during image capture */
        u64 i_devno;
 
-       /* List of dentries that reference this inode (there should be
-        * link_count of them) */
+       /* List of dentries that reference this inode (there should be i_nlink
+        * of them) */
        struct list_head i_dentry;
 
        union {
@@ -348,6 +349,9 @@ struct wim_inode {
 #define inode_first_dentry(inode) \
                container_of(inode->i_dentry.next, struct wim_dentry, d_alias)
 
+#define inode_first_full_path(inode) \
+               dentry_full_path(inode_first_dentry(inode))
+
 static inline bool
 dentry_is_first_in_inode(const struct wim_dentry *dentry)
 {
@@ -598,7 +602,7 @@ inode_ref_streams(struct wim_inode *inode);
 extern int
 dentry_tree_fix_inodes(struct wim_dentry *root, struct list_head *inode_list);
 
-extern int
-verify_dentry(struct wim_dentry *dentry, void *wim);
+int
+verify_inode(struct wim_inode *inode, const struct wim_security_data *sd);
 
 #endif