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>
This commit is contained in:
Yann E. MORIN 2015-10-29 21:10:36 +01:00 committed by Thomas Petazzoni
parent 7057555d00
commit 301c18e123
3 changed files with 27 additions and 3 deletions

View File

@ -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

View File

@ -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)

View File

@ -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