This is the mail archive of the
ecos-patches@sources.redhat.com
mailing list for the eCos project.
Re: RFC - patch to fix JFFS2 problems to init sectors
- From: Andrew Lunn <andrew at lunn dot ch>
- To: oyvind dot harboe at zylin dot com
- Cc: 'eCos patches' <ecos-patches at sources dot redhat dot com>
- Date: Mon, 4 Aug 2003 20:21:54 +0200
- Subject: Re: RFC - patch to fix JFFS2 problems to init sectors
- References: <004601c35a9f$cf6b6e10$73dea8c0@lair>
Hi Øyvind.
The jffs2 stuff has been imported from the mtd distribtion. We try not
to make changes to files that are part of that distribution since the
next time we import the latest jffs2 the local changes will cause
problems.
What i suggest you do is get in contact with the jffs2 maintainer,
David Woodhouse <dwmw2@redhat.com>, and see if he will accept your
change into the main jffs2 tree? That will make our life much easier.
Andrew
> Index: ChangeLog
> ===================================================================
> RCS file: /cvs/ecos/ecos/packages/fs/jffs2/current/ChangeLog,v
> retrieving revision 1.10
> diff -u -r1.10 ChangeLog
> --- ChangeLog 27 Jul 2003 14:05:12 -0000 1.10
> +++ ChangeLog 4 Aug 2003 15:41:42 -0000
> @@ -1,3 +1,8 @@
> +2003-08-04 Øyvind Harboe <oyvind.harboe@zylin.com>
> +
> + * Fixed problem with erase of uninitialised sectors. Some sort
> + of GCC(?) issue with the packed attribute and structure duplication.
> +
> 2003-07-27 Andrew Lunn <andrew.lunn@ascom.ch>
>
> * src/os-ecos.h: Added new #defines require for the recent jffs2
> Index: src/erase.c
> ===================================================================
> RCS file: /cvs/ecos/ecos/packages/fs/jffs2/current/src/erase.c,v
> retrieving revision 1.4
> diff -u -r1.4 erase.c
> --- src/erase.c 15 Jul 2003 20:45:32 -0000 1.4
> +++ src/erase.c 4 Aug 2003 15:41:43 -0000
> @@ -363,11 +363,12 @@
> jeb->dirty_size = 0;
> jeb->wasted_size = 0;
> } else {
> - struct jffs2_unknown_node marker = {
> - .magic = cpu_to_je16(JFFS2_MAGIC_BITMASK),
> - .nodetype = cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER),
> - .totlen = cpu_to_je32(c->cleanmarker_size)
> - };
> +
> + struct jffs2_unknown_node marker;
> + memset(&marker, 0, sizeof(marker));
> + marker.magic = cpu_to_je16(JFFS2_MAGIC_BITMASK);
> + marker.nodetype = cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER);
> + marker.totlen = cpu_to_je32(c->cleanmarker_size);
>
> marker.hdr_crc = cpu_to_je32(crc32(0, &marker, je32_to_cpu(marker.totlen) - 4));
>