fs/ntfs3: Fix endian problem
Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
This commit is contained in:
parent
33e70701ed
commit
d5ca773358
@ -236,6 +236,7 @@ struct ATTRIB *ni_find_attr(struct ntfs_inode *ni, struct ATTRIB *attr,
|
|||||||
return attr;
|
return attr;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
ntfs_inode_err(&ni->vfs_inode, "failed to parse mft record");
|
||||||
ntfs_set_state(ni->mi.sbi, NTFS_DIRTY_ERROR);
|
ntfs_set_state(ni->mi.sbi, NTFS_DIRTY_ERROR);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -1643,14 +1644,13 @@ int ni_delete_all(struct ntfs_inode *ni)
|
|||||||
* Return: File name attribute by its value.
|
* Return: File name attribute by its value.
|
||||||
*/
|
*/
|
||||||
struct ATTR_FILE_NAME *ni_fname_name(struct ntfs_inode *ni,
|
struct ATTR_FILE_NAME *ni_fname_name(struct ntfs_inode *ni,
|
||||||
const struct cpu_str *uni,
|
const struct le_str *uni,
|
||||||
const struct MFT_REF *home_dir,
|
const struct MFT_REF *home_dir,
|
||||||
struct mft_inode **mi,
|
struct mft_inode **mi,
|
||||||
struct ATTR_LIST_ENTRY **le)
|
struct ATTR_LIST_ENTRY **le)
|
||||||
{
|
{
|
||||||
struct ATTRIB *attr = NULL;
|
struct ATTRIB *attr = NULL;
|
||||||
struct ATTR_FILE_NAME *fname;
|
struct ATTR_FILE_NAME *fname;
|
||||||
struct le_str *fns;
|
|
||||||
|
|
||||||
if (le)
|
if (le)
|
||||||
*le = NULL;
|
*le = NULL;
|
||||||
@ -1674,10 +1674,9 @@ next:
|
|||||||
if (uni->len != fname->name_len)
|
if (uni->len != fname->name_len)
|
||||||
goto next;
|
goto next;
|
||||||
|
|
||||||
fns = (struct le_str *)&fname->name_len;
|
if (ntfs_cmp_names(uni->name, uni->len, fname->name, uni->len, NULL,
|
||||||
if (ntfs_cmp_names_cpu(uni, fns, NULL, false))
|
false))
|
||||||
goto next;
|
goto next;
|
||||||
|
|
||||||
return fname;
|
return fname;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2915,7 +2914,7 @@ int ni_remove_name(struct ntfs_inode *dir_ni, struct ntfs_inode *ni,
|
|||||||
/* Find name in record. */
|
/* Find name in record. */
|
||||||
mi_get_ref(&dir_ni->mi, &de_name->home);
|
mi_get_ref(&dir_ni->mi, &de_name->home);
|
||||||
|
|
||||||
fname = ni_fname_name(ni, (struct cpu_str *)&de_name->name_len,
|
fname = ni_fname_name(ni, (struct le_str *)&de_name->name_len,
|
||||||
&de_name->home, &mi, &le);
|
&de_name->home, &mi, &le);
|
||||||
if (!fname)
|
if (!fname)
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
|
@ -543,7 +543,7 @@ void ni_remove_attr_le(struct ntfs_inode *ni, struct ATTRIB *attr,
|
|||||||
struct mft_inode *mi, struct ATTR_LIST_ENTRY *le);
|
struct mft_inode *mi, struct ATTR_LIST_ENTRY *le);
|
||||||
int ni_delete_all(struct ntfs_inode *ni);
|
int ni_delete_all(struct ntfs_inode *ni);
|
||||||
struct ATTR_FILE_NAME *ni_fname_name(struct ntfs_inode *ni,
|
struct ATTR_FILE_NAME *ni_fname_name(struct ntfs_inode *ni,
|
||||||
const struct cpu_str *uni,
|
const struct le_str *uni,
|
||||||
const struct MFT_REF *home,
|
const struct MFT_REF *home,
|
||||||
struct mft_inode **mi,
|
struct mft_inode **mi,
|
||||||
struct ATTR_LIST_ENTRY **entry);
|
struct ATTR_LIST_ENTRY **entry);
|
||||||
|
Loading…
Reference in New Issue
Block a user