summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsrimugunthan dhandapani <srimugunthan.dhandapani@gmail.com>2011-08-26 16:08:39 +0530
committerArtem Bityutskiy <artem.bityutskiy@linux.intel.com>2011-08-26 16:08:39 +0530
commit7606f85a701ed8feeac065e133ff9a51c267aa0d (patch)
tree6c6d307b349c0897a6f76c4d16e8ae50adc7897b
parentd37854cf99319966f34bb19c7a897b87d478b56c (diff)
downloadop-kernel-dev-7606f85a701ed8feeac065e133ff9a51c267aa0d.zip
op-kernel-dev-7606f85a701ed8feeac065e133ff9a51c267aa0d.tar.gz
UBIFS: fix the dark space calculation
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> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@intel.com>
-rw-r--r--fs/ubifs/recovery.c2
-rw-r--r--fs/ubifs/sb.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/fs/ubifs/recovery.c b/fs/ubifs/recovery.c
index af02790..ee4f43f 100644
--- a/fs/ubifs/recovery.c
+++ b/fs/ubifs/recovery.c
@@ -983,7 +983,7 @@ int ubifs_recover_inl_heads(struct ubifs_info *c, void *sbuf)
}
/**
- * clean_an_unclean_leb - read and write a LEB to remove corruption.
+ * clean_an_unclean_leb - read and write a LEB to remove corruption.
* @c: UBIFS file-system description object
* @ucleb: unclean LEB information
* @sbuf: LEB-sized buffer to use
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);
OpenPOWER on IntegriCloud