summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann E. MORIN <yann.morin.1998@free.fr>2015-10-29 21:10:36 +0100
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2015-10-31 15:56:56 +0100
commit301c18e1233a4e1bbbd5368496ddfe99480909bf (patch)
treeb3affc85d806b0e6fa370bb63c287231adf10b7d
parent7057555d00a11b4fc8aa1a7c46c44d98442aa03c (diff)
fs/ext2: add options for extra space and extra inodes
Add two options to the ext2 filesystem, one to add extra free space, one to add extra free inodes. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Gustavo Zacarias <gustavo@zacarias.com.ar> Tested-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Acked-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Cc: Martin Bark <martin@barkynet.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-rw-r--r--fs/ext2/Config.in20
-rw-r--r--fs/ext2/ext2.mk2
-rwxr-xr-xpackage/mke2img/mke2img8
3 files changed, 27 insertions, 3 deletions
diff --git a/fs/ext2/Config.in b/fs/ext2/Config.in
index 5b1cd0cd9..1e7f719a8 100644
--- a/fs/ext2/Config.in
+++ b/fs/ext2/Config.in
@@ -45,13 +45,29 @@ config BR2_TARGET_ROOTFS_EXT2_LABEL
string "filesystem label"
config BR2_TARGET_ROOTFS_EXT2_BLOCKS
- int "size in blocks (leave at 0 for auto calculation)"
+ int "exact size in blocks (leave at 0 for auto calculation)"
default 0
config BR2_TARGET_ROOTFS_EXT2_INODES
- int "inodes (leave at 0 for auto calculation)"
+ int "exact number of inodes (leave at 0 for auto calculation)"
default 0
+config BR2_TARGET_ROOTFS_EXT2_EXTRA_BLOCKS
+ int "extra size in blocks" if BR2_TARGET_ROOTFS_EXT2_BLOCKS = 0
+ default 0
+ help
+ Enter here the number of extra blocks of free space you
+ want on your filesystem. By default, Buildroot will not
+ leave much space free.
+
+config BR2_TARGET_ROOTFS_EXT2_EXTRA_INODES
+ int "extra inodes" if BR2_TARGET_ROOTFS_EXT2_INODES = 0
+ default 0
+ help
+ Enter here the number of extra free inodes you want on
+ your filesystem. By default, Buildroot will not leave
+ many free inodes.
+
config BR2_TARGET_ROOTFS_EXT2_RESBLKS
int "reserved blocks percentage"
default 0
diff --git a/fs/ext2/ext2.mk b/fs/ext2/ext2.mk
index cab66a5e2..7417f81cf 100644
--- a/fs/ext2/ext2.mk
+++ b/fs/ext2/ext2.mk
@@ -9,10 +9,12 @@ EXT2_OPTS = -G $(BR2_TARGET_ROOTFS_EXT2_GEN) -R $(BR2_TARGET_ROOTFS_EXT2_REV)
ifneq ($(strip $(BR2_TARGET_ROOTFS_EXT2_BLOCKS)),0)
EXT2_OPTS += -b $(BR2_TARGET_ROOTFS_EXT2_BLOCKS)
endif
+EXT2_OPTS += -B $(BR2_TARGET_ROOTFS_EXT2_EXTRA_BLOCKS)
ifneq ($(strip $(BR2_TARGET_ROOTFS_EXT2_INODES)),0)
EXT2_OPTS += -i $(BR2_TARGET_ROOTFS_EXT2_INODES)
endif
+EXT2_OPTS += -I $(BR2_TARGET_ROOTFS_EXT2_EXTRA_INODES)
ifneq ($(strip $(BR2_TARGET_ROOTFS_EXT2_RESBLKS)),0)
EXT2_OPTS += -r $(BR2_TARGET_ROOTFS_EXT2_RESBLKS)
diff --git a/package/mke2img/mke2img b/package/mke2img/mke2img
index 5e2f62f00..d772af5dd 100755
--- a/package/mke2img/mke2img
+++ b/package/mke2img/mke2img
@@ -17,12 +17,16 @@ main() {
# Default values
gen=2
rev=1
+ nb_extra_blocks=0
+ nb_extra_inodes=0
- while getopts :hb:i:r:d:o:G:R:l:u: OPT; do
+ while getopts :hb:B:i:I:r:d:o:G:R:l:u: OPT; do
case "${OPT}" in
h) help; exit 0;;
b) nb_blocks=${OPTARG};;
+ B) nb_extra_blocks=${OPTARG};;
i) nb_inodes=${OPTARG};;
+ I) nb_extra_inodes=${OPTARG};;
r) nb_res_blocks=${OPTARG};;
d) root_dir="${OPTARG}";;
o) image="${OPTARG}";;
@@ -58,6 +62,7 @@ main() {
nb_inodes=$(find "${root_dir}" | wc -l)
nb_inodes=$((nb_inodes+400))
fi
+ nb_inodes=$((nb_inodes+nb_extra_inodes))
# calculate needed blocks
if [ -z "${nb_blocks}" ]; then
@@ -73,6 +78,7 @@ main() {
nb_blocks=$((nb_blocks+1300))
fi
fi
+ nb_blocks=$((nb_blocks+nb_extra_blocks))
# Upgrade to rev1 if needed
if [ ${rev} -ge 1 ]; then