NTFS: Handle the recently introduced -ENAMETOOLONG return value from
authorAnton Altaparmakov <aia21@cantab.net>
Thu, 23 Mar 2006 16:25:23 +0000 (16:25 +0000)
committerAnton Altaparmakov <aia21@cantab.net>
Thu, 23 Mar 2006 16:25:23 +0000 (16:25 +0000)
      fs/ntfs/unistr.c::ntfs_nlstoucs() in fs/ntfs/namei.c::ntfs_lookup().

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
fs/ntfs/ChangeLog
fs/ntfs/namei.c

index d20031587bbb5e2fa9d55e5cea41797d69760d79..9fb08ef3a7f8c147f3d0c273f9b0e9b9cb22cffc 100644 (file)
@@ -16,8 +16,6 @@ ToDo/Notes:
          inode having been discarded already.  Whether this can actually ever
          happen is unclear however so it is worth waiting until someone hits
          the problem.
-       - Enable the code for setting the NT4 compatibility flag when we start
-         making NTFS 1.2 specific modifications.
 
 2.1.27 - Various bug fixes and cleanups.
 
@@ -43,6 +41,8 @@ ToDo/Notes:
          have an index allocation attribute failed.
        - Add a missing call to flush_dcache_mft_record_page() in
          fs/ntfs/inode.c::ntfs_write_inode().
+       - Handle the recently introduced -ENAMETOOLONG return value from
+         fs/ntfs/unistr.c::ntfs_nlstoucs() in fs/ntfs/namei.c::ntfs_lookup().
 
 2.1.26 - Minor bug fixes and updates.
 
index 78e0cf738e249b1acf96ed8b9d2d6c1e4cfbf742..eddb2247cec5897319eb719805e19e62295c008b 100644 (file)
@@ -115,7 +115,9 @@ static struct dentry *ntfs_lookup(struct inode *dir_ino, struct dentry *dent,
        uname_len = ntfs_nlstoucs(vol, dent->d_name.name, dent->d_name.len,
                        &uname);
        if (uname_len < 0) {
-               ntfs_error(vol->sb, "Failed to convert name to Unicode.");
+               if (uname_len != -ENAMETOOLONG)
+                       ntfs_error(vol->sb, "Failed to convert name to "
+                                       "Unicode.");
                return ERR_PTR(uname_len);
        }
        mref = ntfs_lookup_inode_by_name(NTFS_I(dir_ino), uname, uname_len,
@@ -157,7 +159,7 @@ static struct dentry *ntfs_lookup(struct inode *dir_ino, struct dentry *dent,
                /* Return the error code. */
                return (struct dentry *)dent_inode;
        }
-       /* It is guaranteed that name is no longer allocated at this point. */
+       /* It is guaranteed that @name is no longer allocated at this point. */
        if (MREF_ERR(mref) == -ENOENT) {
                ntfs_debug("Entry was not found, adding negative dentry.");
                /* The dcache will handle negative entries. */
@@ -168,7 +170,6 @@ static struct dentry *ntfs_lookup(struct inode *dir_ino, struct dentry *dent,
        ntfs_error(vol->sb, "ntfs_lookup_ino_by_name() failed with error "
                        "code %i.", -MREF_ERR(mref));
        return ERR_PTR(MREF_ERR(mref));
-
        // TODO: Consider moving this lot to a separate function! (AIA)
 handle_name:
    {