aboutsummaryrefslogtreecommitdiffstats
path: root/package/utils/f2fs-tools/patches/010-fsck-Fix-big-endian-platforms.patch
diff options
context:
space:
mode:
authorRosen Penev <rosenp@gmail.com>2018-12-09 19:58:21 -0800
committerHauke Mehrtens <hauke@hauke-m.de>2018-12-16 00:57:19 +0100
commitd2b16a59d567135c683cd28906de6086e40ec880 (patch)
tree185629276b103f7a8bcc6a2d416b49a5bff009da /package/utils/f2fs-tools/patches/010-fsck-Fix-big-endian-platforms.patch
parent5d501e54fc3b4e9c948b2c78a551abb285d89554 (diff)
downloadupstream-d2b16a59d567135c683cd28906de6086e40ec880.tar.gz
upstream-d2b16a59d567135c683cd28906de6086e40ec880.tar.bz2
upstream-d2b16a59d567135c683cd28906de6086e40ec880.zip
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>
Diffstat (limited to 'package/utils/f2fs-tools/patches/010-fsck-Fix-big-endian-platforms.patch')
-rw-r--r--package/utils/f2fs-tools/patches/010-fsck-Fix-big-endian-platforms.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/package/utils/f2fs-tools/patches/010-fsck-Fix-big-endian-platforms.patch b/package/utils/f2fs-tools/patches/010-fsck-Fix-big-endian-platforms.patch
new file mode 100644
index 0000000000..4410d0fcd8
--- /dev/null
+++ b/package/utils/f2fs-tools/patches/010-fsck-Fix-big-endian-platforms.patch
@@ -0,0 +1,35 @@
+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 */