From d90e805fe607f6455a6ae8631e91c960ba4deaa2 Mon Sep 17 00:00:00 2001
From: Gabor Juhos <juhosg@openwrt.org>
Date: Thu, 29 Nov 2012 17:37:15 +0000
Subject: [PATCH] build: Add TARGET_ROOTFS_RESERVED_PCT option to reduce wasted
 space
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

The genext2fs tool will 'reserve' 5% of the image size by default,
apparently by creating a huge lost+found directory. In fact it seemed to
be much more than 5% in practice — I saw an image with 8MiB used, and
recovered about 2MiB of it by deleting the 'empty' lost+found directory:

/dev/loop0         48377  8482     37438  19% /mnt/spare
 # rmdir lost+found/
/dev/loop0         48377  6014     39906  14% /mnt/spare

This makes it configurable, but leaves it at the genext2fs default
of 5% for now. It should probably be changed to default to zero, but
that can be a separate patch.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

SVN-Revision: 34408
---
 Config.in        | 7 +++++++
 include/image.mk | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/Config.in b/Config.in
index 46f7ce8385..76acbe5944 100644
--- a/Config.in
+++ b/Config.in
@@ -125,6 +125,13 @@ menu "Target Images"
 		help
 		    Allows you to change the maximum number of inodes in the root filesystem
 
+	config TARGET_ROOTFS_RESERVED_PCT
+		int "Percentage of reserved blocks in root filesystem"
+		depends TARGET_ROOTFS_EXT4FS
+		default 5
+		help
+		    Allows you to change the percentage of reserved blocks in the root filesystem
+
 endmenu
 
 menu "Global build settings"
diff --git a/include/image.mk b/include/image.mk
index 10850a6327..503115ddb0 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -124,7 +124,7 @@ ifneq ($(CONFIG_TARGET_ROOTFS_EXT4FS),)
 
   define Image/mkfs/ext4
 # generate an ext2 fs
-	$(STAGING_DIR_HOST)/bin/genext2fs -U -b $(E2SIZE) -N $(CONFIG_TARGET_ROOTFS_MAXINODE) -d $(TARGET_DIR)/ $(KDIR)/root.ext4
+	$(STAGING_DIR_HOST)/bin/genext2fs -U -b $(E2SIZE) -N $(CONFIG_TARGET_ROOTFS_MAXINODE) -d $(TARGET_DIR)/ $(KDIR)/root.ext4 -m $(CONFIG_TARGET_ROOTFS_RESERVED_PCT)
 # convert it to ext4
 	$(STAGING_DIR_HOST)/bin/tune2fs -O extents,uninit_bg,dir_index $(KDIR)/root.ext4
 # fix it up
-- 
2.30.2