Commit 301c18e1 authored by Yann E. MORIN's avatar Yann E. MORIN Committed by Thomas Petazzoni
Browse files

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: default avatar"Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Gustavo Zacarias <gustavo@zacarias.com.ar>
Tested-by: default avatarGustavo Zacarias <gustavo@zacarias.com.ar>
Acked-by: default avatarGustavo Zacarias <gustavo@zacarias.com.ar>
Cc: Martin Bark <martin@barkynet.com>
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent 7057555d
Loading
Loading
Loading
Loading
+18 −2
Original line number Diff line number Diff line
@@ -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
+2 −0
Original line number Diff line number Diff line
@@ -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)
+7 −1
Original line number Diff line number Diff line
@@ -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