Hi all.
mkfs.cramfs on version v2.17.2 has a small bug when dealing with very
small filesystems.
look at upstream code on git, and the issue is still here.
ex:
$ cd /tmp
$ mkdir content
$ echo hello > content/a
$ echo hello > content/b
$ mkfs.cramfs content content.cramfs
not enough space allocated for ROM image (4090 allocated, 4096
used)
Here is a patch for fixing (simply rounding to page size AFTER
eleminating doubles)
Regards,
Arnaud
diff --git a/disk-utils/mkfs.cramfs.c b/disk-utils/mkfs.cramfs.c
index 4ffa908..30f6b4b 100644
--- a/disk-utils/mkfs.cramfs.c
+++ b/disk-utils/mkfs.cramfs.c
@@ -843,6 +843,9 @@ int main(int argc, char **argv)
root_entry->size = parse_directory(root_entry, dirname,
&root_entry->child, &fslen_ub);
+ /* find duplicate files */
+ eliminate_doubles(root_entry,root_entry, &fslen_ub);
+
/* always allocate a multiple of blksize bytes because that's
what we're going to write later on */
fslen_ub = ((fslen_ub - 1) | (blksize - 1)) + 1;
@@ -858,9 +861,6 @@ int main(int argc, char **argv)
fslen_ub = fslen_max;
}
- /* find duplicate files */
- eliminate_doubles(root_entry,root_entry, &fslen_ub);
-
/* TODO: Why do we use a private/anonymous mapping here
followed by a write below, instead of just a shared mapping
and a couple of ftruncate calls? Is it just to save us
(
--
To unsubscribe from this list: send the line "unsubscribe util-linux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html