Some issues with the AT91 dataflash driver...
Haavard Skinnemoen
hskinnemoen at atmel.com
Wed May 30 04:38:57 EDT 2007
On Wed, 30 May 2007 10:13:22 +0300
Artem Bityutskiy <dedekind at infradead.org> wrote:
> Thanks! Could you please try the below patch - it should help.
It does. No more messages, the GC thread stays alive and I can execute
binaries from the mount. Thanks!
Haavard
> >From f84ae9eae2d0b12cff2e0f5a490a3d732458b381 Mon Sep 17 00:00:00 2001
> From: Artem Bityutskiy <Artem.Bityutskiy at nokia.com>
> Date: Wed, 30 May 2007 12:08:14 +0300
> Subject: [PATCH] JFFS2: fix readinode()
>
> If we have already read enough bytes, no need to call read_more().
>
> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy at nokia.com>
> ---
> fs/jffs2/readinode.c | 9 ++++++---
> 1 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/fs/jffs2/readinode.c b/fs/jffs2/readinode.c
> index 4884d5e..5663e8c 100644
> --- a/fs/jffs2/readinode.c
> +++ b/fs/jffs2/readinode.c
> @@ -1044,7 +1044,8 @@ static int jffs2_get_inode_nodes(struct jffs2_sb_info *c, struct jffs2_inode_inf
>
> case JFFS2_NODETYPE_DIRENT:
>
> - if (JFFS2_MIN_NODE_HEADER < sizeof(struct jffs2_raw_dirent)) {
> + if (JFFS2_MIN_NODE_HEADER < sizeof(struct jffs2_raw_dirent) &&
> + len < sizeof(struct jffs2_raw_dirent)) {
> err = read_more(c, ref, sizeof(struct jffs2_raw_dirent), &len, buf);
> if (unlikely(err))
> goto free_out;
> @@ -1058,7 +1059,8 @@ static int jffs2_get_inode_nodes(struct jffs2_sb_info *c, struct jffs2_inode_inf
>
> case JFFS2_NODETYPE_INODE:
>
> - if (JFFS2_MIN_NODE_HEADER < sizeof(struct jffs2_raw_inode)) {
> + if (JFFS2_MIN_NODE_HEADER < sizeof(struct jffs2_raw_inode) &&
> + len < sizeof(struct jffs2_raw_inode)) {
> err = read_more(c, ref, sizeof(struct jffs2_raw_inode), &len, buf);
> if (unlikely(err))
> goto free_out;
> @@ -1071,7 +1073,8 @@ static int jffs2_get_inode_nodes(struct jffs2_sb_info *c, struct jffs2_inode_inf
> break;
>
> default:
> - if (JFFS2_MIN_NODE_HEADER < sizeof(struct jffs2_unknown_node)) {
> + if (JFFS2_MIN_NODE_HEADER < sizeof(struct jffs2_unknown_node) &&
> + len < sizeof(struct jffs2_unknown_node)) {
> err = read_more(c, ref, sizeof(struct jffs2_unknown_node), &len, buf);
> if (unlikely(err))
> goto free_out;
> --
> 1.5.0.6
More information about the linux-mtd
mailing list