Charles Manning wrote, Thursday, June 23, 2011:
> On Thursday 23 June 2011 08:05:21 Mark Whitney wrote:
[snip]
> > Are there some versions in which compatibility is not guaranteed? Is
> > there a compatibility mode I should be using or an upgrade utility?
> > I also tried mounting under the new yaffs kernel with "-t yaffs" and
> > got the same result. Any advice or guidelines for mounting the old
> > partitions with the new code would be appreciated, thanks.
>
> This is odd. These should be compatible.
is the issue I found and posted a little ago. I never found the time to
correctly send a description of what I found.
In the old version sometimes the size of the block (to be clear the field:
yaffs_packed_tags2_tags_only.n_bytes) isn't written (don't know if it's a
bug or a feature....) while the new check there's a correct size even if
isn't used.
Mark: could you please try to apply this? *IT'S NOT* the right solution,
but just to understand what your problem is.
diff --git a/fs/yaffs2/yaffs_yaffs2.c b/fs/yaffs2/yaffs_yaffs2.c
index 5761e96..5382e02 100644
--- a/fs/yaffs2/yaffs_yaffs2.c
+++ b/fs/yaffs2/yaffs_yaffs2.c
@@ -1024,8 +1024,7 @@ static inline int yaffs2_scan_chunk(struct yaffs_dev
*dev,
} else if (tags.obj_id > YAFFS_MAX_OBJECT_ID ||
tags.chunk_id > YAFFS_MAX_CHUNK_ID ||
tags.obj_id == YAFFS_OBJECTID_SUMMARY ||
- (tags.chunk_id > 0 &&
- tags.n_bytes > dev->data_bytes_per_chunk) ||
+ //(tags.chunk_id > 0 && tags.n_bytes > dev-
>data_bytes_per_chunk) ||
tags.seq_number != bi->seq_number) {
yaffs_trace(YAFFS_TRACE_SCAN,
"Chunk (%d:%d) with bad tags:obj = %d, chunk_id =
%d, n_bytes = %d, ignored"
bye
--
Andrea Gasparini
---- ImaVis S.r.l. ----
web:
www.imavis.com