UBIFS stores inode numbers as LE64 integers.
We have to convert them to host oder, otherwise
BE hosts won't be able to use the integer correctly.

Reported-by: kbuild test robot <l...@intel.com>
Fixes: 9ca2d7326444 ("ubifs: Limit number of xattrs per inode")
Signed-off-by: Richard Weinberger <rich...@nod.at>
---
 fs/ubifs/xattr.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ubifs/xattr.c b/fs/ubifs/xattr.c
index acab3181ab35..bcfed27e8997 100644
--- a/fs/ubifs/xattr.c
+++ b/fs/ubifs/xattr.c
@@ -527,7 +527,7 @@ int ubifs_purge_xattrs(struct inode *host)
                fname_name(&nm) = xent->name;
                fname_len(&nm) = le16_to_cpu(xent->nlen);
 
-               xino = ubifs_iget(c->vfs_sb, xent->inum);
+               xino = ubifs_iget(c->vfs_sb, le64_to_cpu(xent->inum));
                if (IS_ERR(xino)) {
                        err = PTR_ERR(xino);
                        ubifs_err(c, "dead directory entry '%s', error %d",
-- 
2.16.4

Reply via email to