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: Anton Altaparmakov <aia21@cantab.net>
This commit is contained in:
Родитель
20fdcf1d54
Коммит
834ba600ce
|
@ -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.
|
||||
|
||||
|
|
|
@ -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:
|
||||
{
|
||||
|
|
Загрузка…
Ссылка в новой задаче