From 46772bbf0d978512423923da461ceb6b6e791c91 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Fri, 7 Dec 2018 17:39:03 -0800 Subject: [PATCH] fsck: Fix big endian platforms Since "fsck.f2fs: integrate sanity_check_inode to __check_inode_mode", big endian platforms have been broken due to an endianness bug. More info: https://github.com/openwrt/openwrt/pull/1575 Signed-off-by: Rosen Penev --- fsck/fsck.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/fsck/fsck.c +++ b/fsck/fsck.c @@ -339,7 +339,7 @@ out: return ret; } -static int __check_inode_mode(u32 nid, enum FILE_TYPE ftype, u32 mode) +static int __check_inode_mode(u32 nid, enum FILE_TYPE ftype, u16 mode) { if (ftype >= F2FS_FT_MAX) return 0; @@ -457,7 +457,7 @@ static int sanity_check_nid(struct f2fs_ return 0; if (ntype == TYPE_INODE && - __check_inode_mode(nid, ftype, le32_to_cpu(node_blk->i.i_mode))) + __check_inode_mode(nid, ftype, le16_to_cpu(node_blk->i.i_mode))) return -EINVAL; /* workaround to fix later */