[Buildroot] [PATCH] fs/ext2: add options for extra space and extra inodes
Arnout Vandecappelle
arnout at mind.be
Fri Oct 30 12:54:20 UTC 2015
On 30-10-15 13:35, Yann E. MORIN wrote:
> Arnout, All,
>
> On 2015-10-30 12:01 +0100, Arnout Vandecappelle spake thusly:
>> On 29-10-15 00:06, Yann E. MORIN wrote:
>>> 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 at free.fr>
>>> Cc: Gustavo Zacarias <gustavo at zacarias.com.ar>
[snip]
>>> +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 nmuber of extra blocks of free space you
>>> + want on your filesystem. By default, Buildroot will not
>>> + leave much space free.
>>
>> To be precise, buildroot will add 500 extra blocks for ext2 and 1800 extra
>> blocks for ext3+. So perhaps we could encode that here, and remove it from the
>> mke2img script?
>
> I don't want to do that, because the extra blocks and inodes that
> Buildroot adds are just to account for the extra space required to
> store the filesystem metadata.
>
> If we were to encode those here in the kconfig option, nothing would
> prevent the user from setting this to a value lower than strictly
> required.
>
> In Kconfig, we can provide a range, but no a lower (or upper) bound to a
> value. And we do not want to limit the user in the values he may want to
> set here (even to an insanely large value for the upper bound.
>
> I would really prefer we hide this internal complex computation from the
> user, and let him specify the extra space he actually wants.
OK fair enough.
>>> +config BR2_TARGET_ROOTFS_EXT2_EXTRA_INODES
>>> + int "extra inodes" if BR2_TARGET_ROOTFS_EXT2_INODES = 0
>>> + default 0
>>> + help
>>> + Enter here the nmuber of extra free inodes you want on
>>> + your filesystem. By default, Buildroot will not leave
>>> + many free inodes.
>>
>> Same here, 400 inodes are added.
>
> Ditto.
>
>>> 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 cab66a5..7417f81 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)
>>
>> Perhaps this could be put into the else of the ifneq? Or better yet, make it an
>> ifeq.
>
> Well, the fact that the prompt has a condition before it is displayed
> will ensure that BR2_TARGET_ROOTFS_EXT2_EXTRA_BLOCKS/INODES is always
> set to a non-empty value, so we can safely use it. If the user specified
> the exact size/inodes, then the extra size/indoes will be set to 0.
I meant it more as a refactoring that makes the code easier to understand, but
you may have a different opinion of what is easier, so:
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout at mind.be>
Regards,
Arnout
--
Arnout Vandecappelle arnout dot vandecappelle at essensium dot com
Senior Embedded Software Architect . . . . . . +32-478-010353 (mobile)
Essensium, Mind division . . . . . . . . . . . . . . http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium . . . . . BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
More information about the buildroot
mailing list