| Submitter | Anatolij Gustschin |
|---|---|
| Date | Feb. 10, 2011, 3:01 p.m. |
| Message ID | <1297350106-16383-2-git-send-email-agust@denx.de> |
| Download | mbox | patch |
| Permalink | /patch/82612/ |
| State | New |
| Headers | show |
Comments
On Thu, 2011-02-10 at 16:01 +0100, ext Anatolij Gustschin wrote: > From: Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> > > This patch fixes failed recovery from following type of corruptions > on NOR flash: Yeah, I'll push this patch, I already have it in my tree. I'll need to work on v3 of the patch series anyway. As soon as I have time, I'll do, then send v3 out and ask for testing. This fix will be there as well. Thanks! For now, just sick to your original method please.
Patch
diff --git a/fs/ubifs/recovery.c b/fs/ubifs/recovery.c index 4278ae7..65e4664 100644 --- a/fs/ubifs/recovery.c +++ b/fs/ubifs/recovery.c @@ -430,7 +430,7 @@ static int no_more_nodes(const struct ubifs_info *c, void *buf, int len, int skip, dlen = le32_to_cpu(ch->len); /* Check for empty space after the corrupt node's common header */ - skip = ALIGN(offs + UBIFS_CH_SZ, c->min_io_size) - offs; + skip = ALIGN(offs + UBIFS_CH_SZ, c->max_write_size) - offs; if (is_empty(buf + skip, len - skip)) return 1; /* @@ -442,7 +442,7 @@ static int no_more_nodes(const struct ubifs_info *c, void *buf, int len, return 0; } /* Now we know the corrupt node's length we can skip over it */ - skip = ALIGN(offs + dlen, c->min_io_size) - offs; + skip = ALIGN(offs + dlen, c->max_write_size) - offs; /* After which there should be empty space */ if (is_empty(buf + skip, len - skip)) return 1;