Remove dentry.dos_name_invalid
authorEric Biggers <ebiggers3@gmail.com>
Wed, 15 Jan 2014 06:47:37 +0000 (00:47 -0600)
committerEric Biggers <ebiggers3@gmail.com>
Wed, 15 Jan 2014 06:47:37 +0000 (00:47 -0600)
This flag is no longer used.  The extraction code just extracts the DOS
names it finds, which is the best we can do.

include/wimlib/dentry.h
src/inode.c

index b1fba02..0466fb5 100644 (file)
@@ -97,13 +97,6 @@ struct wim_dentry {
         * always be 0.  */
        u8 is_win32_name : 1;
 
-       /* When verifying the dentry tree after reading it into memory, this
-        * flag will be set on all dentries in a hard link group that have a
-        * nonempty DOS name except one.  This is because it is supposed to be
-        * illegal (on NTFS, at least) for a single inode to have multiple DOS
-        * names.  */
-       u8 dos_name_invalid : 1;
-
        u8 tmp_flag : 1;
 
        u8 was_hardlinked : 1;
index 539d566..3450865 100644 (file)
@@ -825,30 +825,6 @@ verify_inode(struct wim_inode *inode, const struct wim_security_data *sd)
                        inode_first_full_path(inode), num_unnamed_streams);
        }
 
-       /* Files cannot have multiple DOS names, even if they have multiple
-        * names in multiple directories (i.e. hard links).
-        * Source: NTFS-3g authors. */
-       struct wim_dentry *dentry_with_dos_name = NULL;
-       inode_for_each_dentry(dentry, inode) {
-               if (dentry_has_short_name(dentry)) {
-                       if (dentry_with_dos_name) {
-                               /* This was previously an error, but if we
-                                * capture a WIM from UDF on Windows, hard links
-                                * are supported but DOS names are automatically
-                                * generated for all names for an inode.  */
-                       #if 0
-                               ERROR("Hard-linked file has a DOS name at "
-                                     "both `%"TS"' and `%"TS"'",
-                                     dentry_full_path(dentry_with_dos_name),
-                                     dentry_full_path(dentry));
-                               return WIMLIB_ERR_INVALID_METADATA_RESOURCE;
-                       #else
-                               dentry->dos_name_invalid = 1;
-                       #endif
-                       }
-                       dentry_with_dos_name = dentry;
-               }
-       }
        return 0;
 }