openwrt/package/utils/f2fs-tools/patches/010-fsck-Fix-big-endian-platforms.patch
Rosen Penev d2b16a59d5 f2fs-tools: Update to 1.12.0
Added two upstream mailing list patches that fix behavior under big endian
systems. Issue was present since version 1.11.0.

Tested on Turris Omnia.

Original discussion: https://github.com/openwrt/openwrt/pull/1575

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2018-12-16 00:57:19 +01:00

36 lines
1.0 KiB
Diff

From 46772bbf0d978512423923da461ceb6b6e791c91 Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
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 <rosenp@gmail.com>
---
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 */