From 8b472bfa73e07e333fbb1aa4abb64ec5a2b4810b Mon Sep 17 00:00:00 2001 From: Arnaud Mouiche Date: Thu, 17 Nov 2011 18:03:04 +0100 Subject: [PATCH] small bug in mkfs.cramfs + patch 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). Signed-off-by: Arnaud Mouiche Signed-off-by: Karel Zak --- disk-utils/mkfs.cramfs.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/disk-utils/mkfs.cramfs.c b/disk-utils/mkfs.cramfs.c index 519363419c..e7a1de35d8 100644 --- a/disk-utils/mkfs.cramfs.c +++ b/disk-utils/mkfs.cramfs.c @@ -794,6 +794,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; @@ -808,9 +811,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 -- 2.47.3