small bug in mkfs.cramfs + patch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux