package/mke2img: do not overshoot user-specified size
authorYann E. MORIN <yann.morin.1998@free.fr>
Sun, 28 Dec 2014 20:11:22 +0000 (21:11 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 28 Dec 2014 21:07:39 +0000 (22:07 +0100)
Currently, we forcibly expand the generated filesystem by 1300 blocks
(i.e. a bit more than 1MiB) when we need to generate an ext3 or ext4
filesystem, even if the user already supplied us with the size it wants
the filesystem to be.

In that case, we overshoot what the user requested, which is bad because
the filesystem may no longer fit in the partition it is supposed to be
written into.

Only add extra blocks when we do compute the required size, not when the
user specifies the size.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/mke2img/mke2img

index 9c56bc24c46739d7a67ca2ae9c66fd2ad0d16a6c..e93d8695ee0cec481ca555e858ff413d385f2e69 100755 (executable)
@@ -66,6 +66,12 @@ main() {
         # bitmaps size + slack
         nb_blocks=$(du -s -k "${root_dir}" |sed -r -e 's/[[:space:]]+.*$//')
         nb_blocks=$((500+(nb_blocks+nb_inodes/8)*11/10))
+        if [ ${gen} -ge 3 ]; then
+            # we add 1300 blocks (a bit more than 1 MiB, assuming 1KiB blocks)
+            # for the journal
+            # Note: I came to 1300 blocks after trial-and-error checks. YMMV.
+            nb_blocks=$((nb_blocks+1300))
+        fi
     fi
 
     # Upgrade to rev1 if needed
@@ -76,10 +82,6 @@ main() {
     # Add a journal for ext3 and above
     if [ ${gen} -ge 3 ]; then
         tune2fs_opts+=( -j -J size=1 )
-        # we add 1300 blocks (a bit more than 1 MiB, assuming 1KiB blocks)
-        # for the journal
-        # Note: I came to 1300 blocks after trial-and-error checks. YMMV.
-        nb_blocks=$((nb_blocks+1300))
     fi
 
     # Add ext4 specific features