diff mbox

UBIFS: fix the dark space calculation

Message ID CAMjNe_fj+FQSV9fX-sjh3hdW-CTNaqwmnS+36if6NcvLtpxOKw@mail.gmail.com
State New, archived
Headers show

Commit Message

srimugunthan dhandapani Aug. 26, 2011, 10:38 a.m. UTC
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@gmail.com>
---
--

Comments

Artem Bityutskiy Sept. 11, 2011, 11:10 a.m. UTC | #1
On Fri, 2011-08-26 at 16:08 +0530, srimugunthan dhandapani wrote:
> 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.

The patch did not apply to the latest UBIFS, but I have amended it.
Pushed to ubifs-2.6.git, thanks!
diff mbox

Patch

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);