All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anatolij Gustschin <agust@denx.de>
To: linux-mtd@lists.infradead.org,
	Artem Bityutskiy <dedekind1@gmail.com>,
	Adrian Hunter <adrian.hunter@nokia.com>
Cc: "Signed-off-by: Artem Bityutskiy" <Artem.Bityutskiy@nokia.com>,
	Detlev Zundel <dzu@denx.de>
Subject: [PATCH 1/2] UBIFS: fix no_more_nodes() to align to max_write_size
Date: Thu, 10 Feb 2011 16:01:45 +0100	[thread overview]
Message-ID: <1297350106-16383-2-git-send-email-agust@denx.de> (raw)
In-Reply-To: <1296998270-19853-1-git-send-email-dedekind1@gmail.com>

From: Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>

This patch fixes failed recovery from following type of corruptions
on NOR flash:

UBIFS DBG (pid 1394): ubifs_scan_a_node: scanning unknown node
UBIFS DBG (pid 1394): no_more_nodes: unexpected bad common header at 42:182336
UBIFS DBG (pid 1394): ubifs_recover_leb: look at LEB 42:182336 (79680 bytes left)
UBIFS DBG (pid 1394): ubifs_scan_a_node: scanning unknown node
UBIFS error (pid 1394): ubifs_check_node: bad node type 51
UBIFS error (pid 1394): ubifs_check_node: bad node at LEB 42:182336
        magic          0x6101831
        crc            0x3c0cb370
        node_type      51 (unknown node)
        group_type     51 (unknown)
        sqnum          111611
        len            21105
node type 51 was not recognized
...
UBIFS DBG (pid 1394): no_more_nodes: unexpected bad common header at 42:182336
UBIFS error (pid 1394): ubifs_recover_leb: bad node
UBIFS error (pid 1394): ubifs_scanned_corruption: corruption at LEB 42:182336
UBIFS error (pid 1394): ubifs_scanned_corruption: first 8192 bytes from LEB 42:182336
00000000: 31181006 70b30c3c fbb30100 00000000 71520000 33330000 7b310000 f7030020
00000020: 00000000 00000000 00100000 00000000 41424331 32334142 43313233 41424331
00000040: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
...

Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 fs/ubifs/recovery.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

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

  parent reply	other threads:[~2011-02-10 15:01 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-06 13:17 [PATCH v2 0/5] UBIFS: fix recovery on CFI NOR Artem Bityutskiy
2011-02-06 13:17 ` [PATCH v2 1/5] UBI: incorporate maximum write size Artem Bityutskiy
2011-02-06 13:17 ` [PATCH v2 2/5] UBIFS: " Artem Bityutskiy
2011-02-06 13:17 ` [PATCH v2 3/5] UBIFS: introduce write-buffer size field Artem Bityutskiy
2011-02-06 13:17 ` [PATCH v2 4/5] UBIFS: use max_write_size for write-buffers Artem Bityutskiy
2011-02-06 13:17 ` [PATCH v2 5/5] UBIFS: use max_write_size during recovery Artem Bityutskiy
2011-02-07 16:25 ` [PATCH v2 0/5] UBIFS: fix recovery on CFI NOR Anatolij Gustschin
2011-02-07 16:43   ` Artem Bityutskiy
2011-02-07 16:58   ` Artem Bityutskiy
2011-02-07 18:06     ` Anatolij Gustschin
2011-02-08 14:33 ` Anatolij Gustschin
2011-02-08 21:31   ` Anatolij Gustschin
2011-02-10 15:01 ` [PATCH 0/2] Further fixes for UBIFS " Anatolij Gustschin
2011-02-10 15:01 ` Anatolij Gustschin [this message]
2011-02-10 15:06   ` [PATCH 1/2] UBIFS: fix no_more_nodes() to align to max_write_size Artem Bityutskiy
2011-02-10 15:01 ` [PATCH 2/2] mtd: cfi: fix writebufsize initialization Anatolij Gustschin
2011-02-10 15:13   ` Guillaume LECERF
2011-02-10 15:27     ` Artem Bityutskiy
2011-02-11 12:04     ` Anatolij Gustschin
2011-02-11 12:25       ` Guillaume LECERF
2011-02-11 14:36   ` Artem Bityutskiy
2011-02-11 15:05     ` Guillaume LECERF
2011-02-11 15:32   ` Artem Bityutskiy
2011-02-11 13:45 ` [PATCH v2 0/5] UBIFS: fix recovery on CFI NOR Artem Bityutskiy
2011-03-07 11:39 ` Artem Bityutskiy
2011-03-07 13:05   ` Anatolij Gustschin
2011-03-07 13:51     ` Artem Bityutskiy
2011-03-07 17:06       ` Anatolij Gustschin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1297350106-16383-2-git-send-email-agust@denx.de \
    --to=agust@denx.de \
    --cc=Artem.Bityutskiy@nokia.com \
    --cc=adrian.hunter@nokia.com \
    --cc=dedekind1@gmail.com \
    --cc=dzu@denx.de \
    --cc=linux-mtd@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.