From 7896d7b81499b9edc6a6fd2ce1a1e3585992a2fe Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Tue, 11 Jul 2017 23:30:10 +0200 Subject: [PATCH] fstools: backport fixes from master branch The following changes are backported from the master branch bdcb075 libfstools: fix matching device name (f038a61 on master) ef2d438 fstools: use -Wno-format-truncation instead of -Wno-error=format-truncation (c43ae11 on master) d361923 build: disable the format-truncation warning error to fix gcc 7 build errors (a19f2b3 on master) cddc830 libfstools: silence mkfs.{ext4,f2fs} (88d48d5 on master) be5004c libfstools: add basic documentation of mount functions (92b4c2c on master) 34d36c2 add missing includes (7d78836 on master) A previously added hotfix was replaced by a git commit, hence the patch file is removed and we got instead 45c2a6f libfstools: fix multiple volume_identify usages with the same volume (633a8d0 on master) Signed-off-by: Daniel Golle --- package/system/fstools/Makefile | 8 +-- ...ultiple-volume_identify-usages-with-.patch | 56 ------------------- 2 files changed, 4 insertions(+), 60 deletions(-) delete mode 100644 package/system/fstools/patches/0001-libfstools-fix-multiple-volume_identify-usages-with-.patch diff --git a/package/system/fstools/Makefile b/package/system/fstools/Makefile index 28f68b57d6..43febd4727 100644 --- a/package/system/fstools/Makefile +++ b/package/system/fstools/Makefile @@ -12,10 +12,10 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(LEDE_GIT)/project/fstools.git -PKG_SOURCE_DATE:=2016-12-04 -PKG_SOURCE_VERSION:=84b530a732b12cca1cd5ee9ba163b7ead7a83de3 -PKG_MIRROR_HASH:=b607138de1adbb7f49e53daebe28ac1352910fa2b29278365edeabafc5b46a91 -PKG_RELEASE:=2 +PKG_SOURCE_DATE:=2017-06-30 +PKG_SOURCE_VERSION:=bdcb075fafdac0bfe3207c23f64acd58432bad86 +PKG_MIRROR_HASH:=760a1fdbd379f1191947ac6ba9881a85a9b8c43f4a96d49db18d4654b0c312c4 +PKG_RELEASE:=1 CMAKE_INSTALL:=1 PKG_LICENSE:=GPL-2.0 diff --git a/package/system/fstools/patches/0001-libfstools-fix-multiple-volume_identify-usages-with-.patch b/package/system/fstools/patches/0001-libfstools-fix-multiple-volume_identify-usages-with-.patch deleted file mode 100644 index 4a3809a276..0000000000 --- a/package/system/fstools/patches/0001-libfstools-fix-multiple-volume_identify-usages-with-.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 633a8d0981fed0c90f6d16ee2257858b04514dc8 Mon Sep 17 00:00:00 2001 -From: Pieter Smith -Date: Wed, 29 Mar 2017 18:21:56 +0200 -Subject: [PATCH] libfstools: fix multiple volume_identify usages with the same - volume -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This fixes e.g. factory-flashed startup issue with jffs2 on ubi overlay - -Commit ba019965 ("libfstools: accept volume as argument in most calls") -broke startup for factory-flashed jffs2 on ubi systems, causing substantial -slowdown in factory environments. - -When starting up with a factory-flashed jffs2 on ubi system, the "rootfs_data" -volume contains a deadcode marker. In the start phase, mount_root then mounts a -tmpfs overlay, and postpones remounting of the jffs2 overlay until the done -phase of the startup. - -The refactoring in ba019965 eliminated an unneeded call to volume_find() when -done() called jffs2_switch(). Unfortunately the refactoring did not take into -account that volume_identify() does not function correctly when called twice in -a row on the same struct volume when using an mtd driver. - -mtd_volume_identify() uses mtd_volume_load() to open an fd to the mtd device -and reads a potential deadcode marker from the fd. The first time this works, -and FS_DEADCODE is returned. - -When volume_identify() is called a second time however, mtd_volume_load() -notices that we already have an open fd, does nothing further and returns 0 -without resetting the file offset to 0. mtd_volume_identify() now reads past -the deadcode marker and now returns FS_JFFS2 if the mtd device is a UBIVOLUME. - -jffs2_switch() then handles the wrong case, either pulling the root out from -under user-space in Chaos Calmer, or indefinitely sticking to a tmpfs overlay -in later OpenWRT builds. - -Signed-off-by: Pieter Smith -Signed-off-by: Rafał Miłecki ---- - ---- a/libfstools/mtd.c -+++ b/libfstools/mtd.c -@@ -76,8 +76,10 @@ static int mtd_volume_load(struct mtd_vo - struct mtd_info_user mtdInfo; - struct erase_info_user mtdLockInfo; - -- if (p->fd) -+ if (p->fd) { -+ lseek(p->fd, 0, SEEK_SET); - return 0; -+ } - - if (!p->chr) - return -1;