Patchwork [v3,2/7] UBI: provide LEB offset information

login
register
mail settings
Submitter Artem Bityutskiy
Date March 8, 2011, 8:32 a.m.
Message ID <1299573168-27760-3-git-send-email-dedekind1@gmail.com>
Download mbox | patch
Permalink /patch/85934/
State Accepted
Commit f43ec882b8b65de0ebde2e1ad52e8de0349d83ae
Headers show

Comments

Artem Bityutskiy - March 8, 2011, 8:32 a.m.
From: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>

Provide the LEB offset information in the UBI device information data
structure. This piece of information is required by UBIFS to find out
what are the LEB offsets which are aligned to the max. write size.

If LEB offset not aligned to max. write size, then UBIFS has to take
this into account to write more optimally.

Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
---
 drivers/mtd/ubi/kapi.c  |    1 +
 include/linux/mtd/ubi.h |    3 +++
 2 files changed, 4 insertions(+), 0 deletions(-)

Patch

diff --git a/drivers/mtd/ubi/kapi.c b/drivers/mtd/ubi/kapi.c
index 701df4f..d39716e 100644
--- a/drivers/mtd/ubi/kapi.c
+++ b/drivers/mtd/ubi/kapi.c
@@ -40,6 +40,7 @@  void ubi_do_get_device_info(struct ubi_device *ubi, struct ubi_device_info *di)
 {
 	di->ubi_num = ubi->ubi_num;
 	di->leb_size = ubi->leb_size;
+	di->leb_start = ubi->leb_start;
 	di->min_io_size = ubi->min_io_size;
 	di->max_write_size = ubi->max_write_size;
 	di->ro_mode = ubi->ro_mode;
diff --git a/include/linux/mtd/ubi.h b/include/linux/mtd/ubi.h
index 36c7059..84854ed 100644
--- a/include/linux/mtd/ubi.h
+++ b/include/linux/mtd/ubi.h
@@ -116,6 +116,8 @@  struct ubi_volume_info {
  * struct ubi_device_info - UBI device description data structure.
  * @ubi_num: ubi device number
  * @leb_size: logical eraseblock size on this UBI device
+ * @leb_start: starting offset of logical eraseblocks within physical
+ *             eraseblocks
  * @min_io_size: minimal I/O unit size
  * @max_write_size: maximum amount of bytes the underlying flash can write at a
  *                  time (MTD write buffer size)
@@ -145,6 +147,7 @@  struct ubi_volume_info {
 struct ubi_device_info {
 	int ubi_num;
 	int leb_size;
+	int leb_start;
 	int min_io_size;
 	int max_write_size;
 	int ro_mode;