Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 834ba600 authored by Anton Altaparmakov's avatar Anton Altaparmakov
Browse files

NTFS: Handle the recently introduced -ENAMETOOLONG return value from


      fs/ntfs/unistr.c::ntfs_nlstoucs() in fs/ntfs/namei.c::ntfs_lookup().

Signed-off-by: default avatarAnton Altaparmakov <aia21@cantab.net>
parent 20fdcf1d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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.

+4 −3
Original line number Diff line number Diff line
@@ -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:
   {