Re: [RFC][PATCH 7/7] MTD: UBI: wire up checkpointing

From: Richard Weinberger
Date: Sun Feb 19 2012 - 09:09:32 EST


Am 19.02.2012 14:57, schrieb Shmulik Ladkani:
On Tue, 14 Feb 2012 21:06:46 +0100 Richard Weinberger<rw@xxxxxxxxxxxxx> wrote:
+#ifdef CONFIG_MTD_UBI_CHECKPOINT
+static int attach_by_checkpointing(struct ubi_device *ubi)
+{
+ int cp_start, err;
+ struct ubi_scan_info *si;
+
+ cp_start = ubi_find_checkpoint(ubi);
+ if (cp_start< 0)
+ return -ENOENT;
+
+ si = ubi_read_checkpoint(ubi, cp_start);
+ if (IS_ERR(si))
+ return PTR_ERR(si);
+
+ ubi->bad_peb_count = 0;
+ ubi->good_peb_count = ubi->peb_count;

Zero reported bad PEBs when checkpointing.
Seems that checkpointing does not remember number/location of bad PEBs.

Currently checkpointing cares only about used and free PEBs.
Bad PEBs are no longer visible to UBI after recovering from a checkpoint.

Are we fine with that?

This patch is a RFC. :-)

+#ifdef CONFIG_MTD_UBI_CHECKPOINT
+ err = attach_by_checkpointing(ubi);
+
+ if (err) {
+ if (err != -ENOENT)
+ ubi_msg("falling back to attach by scanning mode!\n");
+
+ err = attach_by_scanning(ubi);
+ }

Code does not fit error message.
Message states "falling back to scanning" only if "err != -ENOENT".
However code calls 'attach_by_scanning' regardless 'err'.
Was it your intention?

Yes.
If recovering from a checkpoint fails the corresponding code prints
a human readable error message in any case.

Thanks,
//richard
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/