[PATCH] UBIFS: fix the dark space calculation

srimugunthan dhandapani srimugunthan.dhandapani at gmail.com
Fri Aug 26 06:38:39 EDT 2011


hi,
The dark space calculation should be 64 bit type-casted ,when
assigning to tmp64( similar to how total_free is calculated).
Overflow will occur for very large flashes.

Signed-off-by: srimugunthan <srimugunthan.dhandapani at gmail.com>
---
diff --git a/fs/ubifs/sb.c b/fs/ubifs/sb.c
index 93d938a..6094c5a 100644
--- a/fs/ubifs/sb.c
+++ b/fs/ubifs/sb.c
@@ -247,7 +247,7 @@ static int create_default_filesystem(struct ubifs_info *c)
        mst->total_dirty = cpu_to_le64(tmp64);

        /*  The indexing LEB does not contribute to dark space */
-       tmp64 = (c->main_lebs - 1) * c->dark_wm;
+       tmp64 = ((long long)(c->main_lebs - 1) * c->dark_wm);
        mst->total_dark = cpu_to_le64(tmp64);

        mst->total_used = cpu_to_le64(UBIFS_INO_NODE_SZ);
--



More information about the linux-mtd mailing list