diff options
Diffstat (limited to 'target/linux')
| -rw-r--r-- | target/linux/generic-2.6/patches/510-Yaffs.patch | 158 | 
1 files changed, 92 insertions, 66 deletions
diff --git a/target/linux/generic-2.6/patches/510-Yaffs.patch b/target/linux/generic-2.6/patches/510-Yaffs.patch index fb0299e6e..99775d750 100644 --- a/target/linux/generic-2.6/patches/510-Yaffs.patch +++ b/target/linux/generic-2.6/patches/510-Yaffs.patch @@ -1,6 +1,25 @@ +diff -urN linux-2.6.21.1/fs/Kconfig linux-2.6.21.1.new/fs/Kconfig +--- linux-2.6.21.1/fs/Kconfig	2007-06-08 14:07:09.000000000 +0200 ++++ linux-2.6.21.1.new/fs/Kconfig	2007-06-08 14:09:26.000000000 +0200 +@@ -419,6 +419,7 @@ +  + source "fs/xfs/Kconfig" + source "fs/gfs2/Kconfig" ++source "fs/yaffs2/Kconfig" +  + config OCFS2_FS + 	tristate "OCFS2 file system support" +diff -urN linux-2.6.21.1/fs/Makefile linux-2.6.21.1.new/fs/Makefile +--- linux-2.6.21.1/fs/Makefile	2007-06-08 14:07:09.000000000 +0200 ++++ linux-2.6.21.1.new/fs/Makefile	2007-06-08 14:09:51.000000000 +0200 +@@ -116,3 +116,4 @@ + obj-$(CONFIG_DEBUG_FS)		+= debugfs/ + obj-$(CONFIG_OCFS2_FS)		+= ocfs2/ + obj-$(CONFIG_GFS2_FS)           += gfs2/ ++obj-$(CONFIG_YAFFS_FS)		+= yaffs2/  diff -urN linux-2.6.21.1/fs/yaffs2/Kconfig linux-2.6.21.1.new/fs/yaffs2/Kconfig  --- linux-2.6.21.1/fs/yaffs2/Kconfig	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/Kconfig	2007-05-30 13:17:16.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/Kconfig	2007-06-08 14:07:26.000000000 +0200  @@ -0,0 +1,175 @@  +#  +# YAFFS file system configurations @@ -179,7 +198,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/Kconfig linux-2.6.21.1.new/fs/yaffs2/Kconfig  +	  If unsure, say Y.  diff -urN linux-2.6.21.1/fs/yaffs2/Makefile linux-2.6.21.1.new/fs/yaffs2/Makefile  --- linux-2.6.21.1/fs/yaffs2/Makefile	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/Makefile	2007-05-30 13:17:16.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/Makefile	2007-06-08 14:07:26.000000000 +0200  @@ -0,0 +1,11 @@  +#  +# Makefile for the linux YAFFS filesystem routines. @@ -194,7 +213,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/Makefile linux-2.6.21.1.new/fs/yaffs2/Makefil  +yaffs-y += yaffs_mtdif.o yaffs_mtdif2.o  diff -urN linux-2.6.21.1/fs/yaffs2/devextras.h linux-2.6.21.1.new/fs/yaffs2/devextras.h  --- linux-2.6.21.1/fs/yaffs2/devextras.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/devextras.h	2007-05-30 13:17:16.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/devextras.h	2007-06-08 14:07:26.000000000 +0200  @@ -0,0 +1,264 @@  +/*  + * YAFFS: Yet another Flash File System . A NAND-flash specific file system.  @@ -462,7 +481,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/devextras.h linux-2.6.21.1.new/fs/yaffs2/deve  +#endif  diff -urN linux-2.6.21.1/fs/yaffs2/moduleconfig.h linux-2.6.21.1.new/fs/yaffs2/moduleconfig.h  --- linux-2.6.21.1/fs/yaffs2/moduleconfig.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/moduleconfig.h	2007-05-30 13:17:16.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/moduleconfig.h	2007-06-08 14:07:26.000000000 +0200  @@ -0,0 +1,65 @@  +/*  + * YAFFS: Yet another Flash File System . A NAND-flash specific file system.  @@ -531,7 +550,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/moduleconfig.h linux-2.6.21.1.new/fs/yaffs2/m  +#endif /* __YAFFS_CONFIG_H__ */  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_checkptrw.c linux-2.6.21.1.new/fs/yaffs2/yaffs_checkptrw.c  --- linux-2.6.21.1/fs/yaffs2/yaffs_checkptrw.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_checkptrw.c	2007-05-30 13:17:16.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_checkptrw.c	2007-06-08 14:07:26.000000000 +0200  @@ -0,0 +1,404 @@  +/*  + * YAFFS: Yet Another Flash File System. A NAND-flash specific file system. @@ -939,7 +958,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_checkptrw.c linux-2.6.21.1.new/fs/yaffs  +  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_checkptrw.h linux-2.6.21.1.new/fs/yaffs2/yaffs_checkptrw.h  --- linux-2.6.21.1/fs/yaffs2/yaffs_checkptrw.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_checkptrw.h	2007-05-30 13:17:16.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_checkptrw.h	2007-06-08 14:07:26.000000000 +0200  @@ -0,0 +1,35 @@  +/*  + * YAFFS: Yet another Flash File System . A NAND-flash specific file system.  @@ -978,7 +997,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_checkptrw.h linux-2.6.21.1.new/fs/yaffs  +  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_ecc.c linux-2.6.21.1.new/fs/yaffs2/yaffs_ecc.c  --- linux-2.6.21.1/fs/yaffs2/yaffs_ecc.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_ecc.c	2007-05-30 13:17:16.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_ecc.c	2007-06-08 14:07:26.000000000 +0200  @@ -0,0 +1,331 @@  +/*  + * YAFFS: Yet Another Flash File System. A NAND-flash specific file system. @@ -1313,7 +1332,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_ecc.c linux-2.6.21.1.new/fs/yaffs2/yaff  +  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_ecc.h linux-2.6.21.1.new/fs/yaffs2/yaffs_ecc.h  --- linux-2.6.21.1/fs/yaffs2/yaffs_ecc.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_ecc.h	2007-05-30 13:17:16.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_ecc.h	2007-06-08 14:07:26.000000000 +0200  @@ -0,0 +1,44 @@  +/*  + * YAFFS: Yet another Flash File System . A NAND-flash specific file system.  @@ -1361,7 +1380,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_ecc.h linux-2.6.21.1.new/fs/yaffs2/yaff  +#endif  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_fs.c linux-2.6.21.1.new/fs/yaffs2/yaffs_fs.c  --- linux-2.6.21.1/fs/yaffs2/yaffs_fs.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_fs.c	2007-05-30 13:17:16.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_fs.c	2007-06-08 14:07:26.000000000 +0200  @@ -0,0 +1,2278 @@  +/*  + * YAFFS: Yet Another Flash File System. A NAND-flash specific file system. @@ -3643,7 +3662,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_fs.c linux-2.6.21.1.new/fs/yaffs2/yaffs  +MODULE_LICENSE("GPL");  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_guts.c linux-2.6.21.1.new/fs/yaffs2/yaffs_guts.c  --- linux-2.6.21.1/fs/yaffs2/yaffs_guts.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_guts.c	2007-05-30 13:17:16.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_guts.c	2007-06-08 14:07:26.000000000 +0200  @@ -0,0 +1,7469 @@  +/*  + * YAFFS: Yet Another Flash File System. A NAND-flash specific file system. @@ -11116,7 +11135,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_guts.c linux-2.6.21.1.new/fs/yaffs2/yaf  +}  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_guts.h linux-2.6.21.1.new/fs/yaffs2/yaffs_guts.h  --- linux-2.6.21.1/fs/yaffs2/yaffs_guts.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_guts.h	2007-05-30 13:17:16.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_guts.h	2007-06-08 14:07:26.000000000 +0200  @@ -0,0 +1,902 @@  +/*  + * YAFFS: Yet another Flash File System . A NAND-flash specific file system.  @@ -12022,7 +12041,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_guts.h linux-2.6.21.1.new/fs/yaffs2/yaf  +#endif  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif.c linux-2.6.21.1.new/fs/yaffs2/yaffs_mtdif.c  --- linux-2.6.21.1/fs/yaffs2/yaffs_mtdif.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_mtdif.c	2007-05-30 13:17:17.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_mtdif.c	2007-06-08 14:07:26.000000000 +0200  @@ -0,0 +1,241 @@  +/*  + * YAFFS: Yet Another Flash File System. A NAND-flash specific file system. @@ -12267,7 +12286,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif.c linux-2.6.21.1.new/fs/yaffs2/ya  +  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif.h linux-2.6.21.1.new/fs/yaffs2/yaffs_mtdif.h  --- linux-2.6.21.1/fs/yaffs2/yaffs_mtdif.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_mtdif.h	2007-05-30 13:17:17.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_mtdif.h	2007-06-08 14:07:26.000000000 +0200  @@ -0,0 +1,27 @@  +/*  + * YAFFS: Yet another Flash File System . A NAND-flash specific file system.  @@ -12298,7 +12317,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif.h linux-2.6.21.1.new/fs/yaffs2/ya  +#endif  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif1-compat.c linux-2.6.21.1.new/fs/yaffs2/yaffs_mtdif1-compat.c  --- linux-2.6.21.1/fs/yaffs2/yaffs_mtdif1-compat.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_mtdif1-compat.c	2007-05-30 13:17:16.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_mtdif1-compat.c	2007-06-08 14:07:26.000000000 +0200  @@ -0,0 +1,434 @@  +From ian@brightstareng.com Fri May 18 15:06:49 2007  +From ian@brightstareng.com Fri May 18 15:08:21 2007 @@ -12736,8 +12755,8 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif1-compat.c linux-2.6.21.1.new/fs/y  +  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif1.c linux-2.6.21.1.new/fs/yaffs2/yaffs_mtdif1.c  --- linux-2.6.21.1/fs/yaffs2/yaffs_mtdif1.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_mtdif1.c	2007-05-30 13:17:16.000000000 +0200 -@@ -0,0 +1,339 @@ ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_mtdif1.c	2007-06-08 14:07:26.000000000 +0200 +@@ -0,0 +1,363 @@  +/*  + * YAFFS: Yet another FFS. A NAND-flash specific file system.  + * yaffs_mtdif1.c  NAND mtd interface functions for small-page NAND. @@ -12774,7 +12793,6 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif1.c linux-2.6.21.1.new/fs/yaffs2/y  +#include "linux/mtd/mtd.h"  +  +/* Don't compile this module if we don't have MTD's mtd_oob_ops interface */ -+/* should really be >= .17, but elsewhere > .17 is used, so be consistent */  +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))  +  +const char *yaffs_mtdif1_c_version = "$Id: yaffs_mtdif1.c,v 1.3 2007/05/15 20:16:11 ian Exp $"; @@ -12843,6 +12861,8 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif1.c linux-2.6.21.1.new/fs/yaffs2/y  +	compile_time_assertion(sizeof(yaffs_PackedTags1) == 12);  +	compile_time_assertion(sizeof(yaffs_Tags) == 8);  + ++	dev->nPageWrites++; ++  +	yaffs_PackTags1(&pt1, etags);  +	yaffs_CalcTagsECC((yaffs_Tags *)&pt1);  + @@ -12919,6 +12939,8 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif1.c linux-2.6.21.1.new/fs/yaffs2/y  +	int retval;  +	int deleted;  + ++	dev->nPageReads++; ++  +	memset(&ops, 0, sizeof(ops));  +	ops.mode = MTD_OOB_AUTO;  +	ops.len = (data) ? chunkBytes : 0; @@ -12926,6 +12948,12 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif1.c linux-2.6.21.1.new/fs/yaffs2/y  +	ops.datbuf = data;  +	ops.oobbuf = (__u8 *)&pt1;  + ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) ++	/* In MTD 2.6.18 to 2.6.19 nand_base.c:nand_do_read_oob() has a bug; ++	 * help it out with ops.len = ops.ooblen when ops.datbuf == NULL. ++	 */ ++	ops.len = (ops.datbuf) ? ops.len : ops.ooblen; ++#endif  +	/* Read page and oob using MTD.  +	 * Check status and determine ECC result.  +	 */ @@ -12972,7 +13000,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif1.c linux-2.6.21.1.new/fs/yaffs2/y  +	deleted = !pt1.deleted;  +	pt1.deleted = 1;  +#else -+	(void) deleted; /* not used */ ++	deleted = (yaffs_CountBits(((__u8 *)&pt1)[8]) < 7);  +#endif  +  +	/* Check the packed tags mini-ECC and correct if necessary/possible. @@ -12985,7 +13013,8 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif1.c linux-2.6.21.1.new/fs/yaffs2/y  +	case 1:  +		/* recovered tags-ECC error */  +		dev->tagsEccFixed++; -+		eccres = YAFFS_ECC_RESULT_FIXED; ++		if (eccres == YAFFS_ECC_RESULT_NO_ERROR) ++			eccres = YAFFS_ECC_RESULT_FIXED;  +		break;  +	default:  +		/* unrecovered tags-ECC error */ @@ -13000,13 +13029,8 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif1.c linux-2.6.21.1.new/fs/yaffs2/y  +	yaffs_UnpackTags1(etags, &pt1);  +	etags->eccResult = eccres;  + -+	/* Set deleted state. -+	 */ -+#ifndef CONFIG_YAFFS_9BYTE_TAGS ++	/* Set deleted state */  +	etags->chunkDeleted = deleted; -+#else -+	etags->chunkDeleted = (yaffs_CountBits(((__u8 *)&pt1)[8]) < 7); -+#endif  +	return YAFFS_OK;  +}  + @@ -13029,6 +13053,25 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif1.c linux-2.6.21.1.new/fs/yaffs2/y  +	return (retval) ? YAFFS_FAIL : YAFFS_OK;  +}  + ++/* Check any MTD prerequists. ++ *  ++ * Returns YAFFS_OK or YAFFS_FAIL. ++ */ ++static int nandmtd1_TestPrerequists(struct mtd_info * mtd) ++{ ++	/* 2.6.18 has mtd->ecclayout->oobavail */ ++	/* 2.6.21 has mtd->ecclayout->oobavail and mtd->oobavail */ ++	int oobavail = mtd->ecclayout->oobavail; ++ ++	if (oobavail < YTAG1_SIZE) { ++		yaffs_trace(YAFFS_TRACE_ERROR, ++			"mtd device has only %d bytes for tags, need %d\n", ++			oobavail, YTAG1_SIZE); ++		return YAFFS_FAIL; ++	} ++	return YAFFS_OK; ++} ++  +/* Query for the current state of a specific block.  + *  + * Examine the tags of the first chunk of the block and return the state: @@ -13047,14 +13090,14 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif1.c linux-2.6.21.1.new/fs/yaffs2/y  +	int state = YAFFS_BLOCK_STATE_DEAD;  +	int seqnum = 0;  +	int retval; -+#if 0 -+	if (mtd->oobavail < YTAG1_SIZE) { -+		yaffs_trace(YAFFS_TRACE_ERROR, -+			"mtd device has only %d bytes for tags, need %d", -+			mtd->oobavail, YTAG1_SIZE); ++ ++	/* We don't yet have a good place to test for MTD config prerequists. ++	 * Do it here as we are called during the initial scan. ++	 */ ++	if (nandmtd1_TestPrerequists(mtd) != YAFFS_OK) {  +		return YAFFS_FAIL;  +	} -+#endif ++  +	retval = nandmtd1_ReadChunkWithTagsFromNAND(dev, chunkNo, NULL, &etags);  +	if (etags.blockBad) {  +		yaffs_trace(YAFFS_TRACE_BAD_BLOCKS, @@ -13079,7 +13122,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif1.c linux-2.6.21.1.new/fs/yaffs2/y  +#endif /*KERNEL_VERSION*/  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif1.h linux-2.6.21.1.new/fs/yaffs2/yaffs_mtdif1.h  --- linux-2.6.21.1/fs/yaffs2/yaffs_mtdif1.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_mtdif1.h	2007-05-30 13:17:17.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_mtdif1.h	2007-06-08 14:07:26.000000000 +0200  @@ -0,0 +1,28 @@  +/*  + * YAFFS: Yet another Flash File System. A NAND-flash specific file system. @@ -13111,7 +13154,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif1.h linux-2.6.21.1.new/fs/yaffs2/y  +#endif  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif2.c linux-2.6.21.1.new/fs/yaffs2/yaffs_mtdif2.c  --- linux-2.6.21.1/fs/yaffs2/yaffs_mtdif2.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_mtdif2.c	2007-05-30 13:17:17.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_mtdif2.c	2007-06-08 14:07:26.000000000 +0200  @@ -0,0 +1,232 @@  +/*  + * YAFFS: Yet Another Flash File System. A NAND-flash specific file system. @@ -13347,7 +13390,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif2.c linux-2.6.21.1.new/fs/yaffs2/y  +  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif2.h linux-2.6.21.1.new/fs/yaffs2/yaffs_mtdif2.h  --- linux-2.6.21.1/fs/yaffs2/yaffs_mtdif2.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_mtdif2.h	2007-05-30 13:17:17.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_mtdif2.h	2007-06-08 14:07:26.000000000 +0200  @@ -0,0 +1,29 @@  +/*  + * YAFFS: Yet another Flash File System . A NAND-flash specific file system.  @@ -13380,7 +13423,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_mtdif2.h linux-2.6.21.1.new/fs/yaffs2/y  +#endif  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_nand.c linux-2.6.21.1.new/fs/yaffs2/yaffs_nand.c  --- linux-2.6.21.1/fs/yaffs2/yaffs_nand.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_nand.c	2007-05-30 13:17:17.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_nand.c	2007-06-08 14:07:26.000000000 +0200  @@ -0,0 +1,134 @@  +/*  + * YAFFS: Yet Another Flash File System. A NAND-flash specific file system. @@ -13518,7 +13561,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_nand.c linux-2.6.21.1.new/fs/yaffs2/yaf  +   diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_nand.h linux-2.6.21.1.new/fs/yaffs2/yaffs_nand.h  --- linux-2.6.21.1/fs/yaffs2/yaffs_nand.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_nand.h	2007-05-30 13:17:17.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_nand.h	2007-06-08 14:07:26.000000000 +0200  @@ -0,0 +1,44 @@  +/*  + * YAFFS: Yet another Flash File System . A NAND-flash specific file system.  @@ -13566,7 +13609,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_nand.h linux-2.6.21.1.new/fs/yaffs2/yaf  +  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_nandemul2k.h linux-2.6.21.1.new/fs/yaffs2/yaffs_nandemul2k.h  --- linux-2.6.21.1/fs/yaffs2/yaffs_nandemul2k.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_nandemul2k.h	2007-05-30 13:17:17.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_nandemul2k.h	2007-06-08 14:07:26.000000000 +0200  @@ -0,0 +1,39 @@  +/*  + * YAFFS: Yet another Flash File System . A NAND-flash specific file system.  @@ -13609,7 +13652,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_nandemul2k.h linux-2.6.21.1.new/fs/yaff  +#endif  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_packedtags1.c linux-2.6.21.1.new/fs/yaffs2/yaffs_packedtags1.c  --- linux-2.6.21.1/fs/yaffs2/yaffs_packedtags1.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_packedtags1.c	2007-05-30 13:17:17.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_packedtags1.c	2007-06-08 14:07:26.000000000 +0200  @@ -0,0 +1,52 @@  +/*  + * YAFFS: Yet Another Flash File System. A NAND-flash specific file system. @@ -13665,7 +13708,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_packedtags1.c linux-2.6.21.1.new/fs/yaf  +}  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_packedtags1.h linux-2.6.21.1.new/fs/yaffs2/yaffs_packedtags1.h  --- linux-2.6.21.1/fs/yaffs2/yaffs_packedtags1.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_packedtags1.h	2007-05-30 13:17:17.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_packedtags1.h	2007-06-08 14:07:27.000000000 +0200  @@ -0,0 +1,37 @@  +/*  + * YAFFS: Yet another Flash File System . A NAND-flash specific file system.  @@ -13706,7 +13749,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_packedtags1.h linux-2.6.21.1.new/fs/yaf  +#endif  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_packedtags2.c linux-2.6.21.1.new/fs/yaffs2/yaffs_packedtags2.c  --- linux-2.6.21.1/fs/yaffs2/yaffs_packedtags2.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_packedtags2.c	2007-05-30 13:17:17.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_packedtags2.c	2007-06-08 14:07:27.000000000 +0200  @@ -0,0 +1,182 @@  +/*  + * YAFFS: Yet Another Flash File System. A NAND-flash specific file system. @@ -13892,7 +13935,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_packedtags2.c linux-2.6.21.1.new/fs/yaf  +}  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_packedtags2.h linux-2.6.21.1.new/fs/yaffs2/yaffs_packedtags2.h  --- linux-2.6.21.1/fs/yaffs2/yaffs_packedtags2.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_packedtags2.h	2007-05-30 13:17:17.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_packedtags2.h	2007-06-08 14:07:27.000000000 +0200  @@ -0,0 +1,38 @@  +/*  + * YAFFS: Yet another Flash File System . A NAND-flash specific file system.  @@ -13934,7 +13977,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_packedtags2.h linux-2.6.21.1.new/fs/yaf  +#endif  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_qsort.c linux-2.6.21.1.new/fs/yaffs2/yaffs_qsort.c  --- linux-2.6.21.1/fs/yaffs2/yaffs_qsort.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_qsort.c	2007-05-30 13:17:17.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_qsort.c	2007-06-08 14:07:27.000000000 +0200  @@ -0,0 +1,160 @@  +/*  + * Copyright (c) 1992, 1993 @@ -14098,7 +14141,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_qsort.c linux-2.6.21.1.new/fs/yaffs2/ya  +}  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_qsort.h linux-2.6.21.1.new/fs/yaffs2/yaffs_qsort.h  --- linux-2.6.21.1/fs/yaffs2/yaffs_qsort.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_qsort.h	2007-05-30 13:17:17.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_qsort.h	2007-06-08 14:07:27.000000000 +0200  @@ -0,0 +1,23 @@  +/*  + * YAFFS: Yet another Flash File System . A NAND-flash specific file system.  @@ -14125,7 +14168,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_qsort.h linux-2.6.21.1.new/fs/yaffs2/ya  +#endif  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_tagscompat.c linux-2.6.21.1.new/fs/yaffs2/yaffs_tagscompat.c  --- linux-2.6.21.1/fs/yaffs2/yaffs_tagscompat.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_tagscompat.c	2007-05-30 13:17:17.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_tagscompat.c	2007-06-08 14:07:27.000000000 +0200  @@ -0,0 +1,530 @@  +/*  + * YAFFS: Yet Another Flash File System. A NAND-flash specific file system. @@ -14659,7 +14702,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_tagscompat.c linux-2.6.21.1.new/fs/yaff  +}  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_tagscompat.h linux-2.6.21.1.new/fs/yaffs2/yaffs_tagscompat.h  --- linux-2.6.21.1/fs/yaffs2/yaffs_tagscompat.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_tagscompat.h	2007-05-30 13:17:17.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_tagscompat.h	2007-06-08 14:07:27.000000000 +0200  @@ -0,0 +1,40 @@  +/*  + * YAFFS: Yet another Flash File System . A NAND-flash specific file system.  @@ -14703,7 +14746,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_tagscompat.h linux-2.6.21.1.new/fs/yaff  +#endif  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_tagsvalidity.c linux-2.6.21.1.new/fs/yaffs2/yaffs_tagsvalidity.c  --- linux-2.6.21.1/fs/yaffs2/yaffs_tagsvalidity.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_tagsvalidity.c	2007-05-30 13:17:17.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_tagsvalidity.c	2007-06-08 14:07:27.000000000 +0200  @@ -0,0 +1,28 @@  +/*  + * YAFFS: Yet Another Flash File System. A NAND-flash specific file system. @@ -14735,7 +14778,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_tagsvalidity.c linux-2.6.21.1.new/fs/ya  +}  diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_tagsvalidity.h linux-2.6.21.1.new/fs/yaffs2/yaffs_tagsvalidity.h  --- linux-2.6.21.1/fs/yaffs2/yaffs_tagsvalidity.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffs_tagsvalidity.h	2007-05-30 13:17:17.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffs_tagsvalidity.h	2007-06-08 14:07:27.000000000 +0200  @@ -0,0 +1,24 @@  +/*  + * YAFFS: Yet another Flash File System . A NAND-flash specific file system.  @@ -14763,7 +14806,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffs_tagsvalidity.h linux-2.6.21.1.new/fs/ya  +#endif  diff -urN linux-2.6.21.1/fs/yaffs2/yaffsinterface.h linux-2.6.21.1.new/fs/yaffs2/yaffsinterface.h  --- linux-2.6.21.1/fs/yaffs2/yaffsinterface.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yaffsinterface.h	2007-05-30 13:17:16.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yaffsinterface.h	2007-06-08 14:07:26.000000000 +0200  @@ -0,0 +1,21 @@  +/*  + * YAFFS: Yet another Flash File System . A NAND-flash specific file system.  @@ -14788,7 +14831,7 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yaffsinterface.h linux-2.6.21.1.new/fs/yaffs2  +#endif  diff -urN linux-2.6.21.1/fs/yaffs2/yportenv.h linux-2.6.21.1.new/fs/yaffs2/yportenv.h  --- linux-2.6.21.1/fs/yaffs2/yportenv.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.21.1.new/fs/yaffs2/yportenv.h	2007-05-30 13:17:17.000000000 +0200 ++++ linux-2.6.21.1.new/fs/yaffs2/yportenv.h	2007-06-08 14:07:27.000000000 +0200  @@ -0,0 +1,186 @@  +/*  + * YAFFS: Yet another Flash File System . A NAND-flash specific file system.  @@ -14976,20 +15019,3 @@ diff -urN linux-2.6.21.1/fs/yaffs2/yportenv.h linux-2.6.21.1.new/fs/yaffs2/yport  +#endif  +  +#endif ---- linux-2.6.21.1/fs/Makefile	2007-05-30 13:16:21.000000000 +0200 -+++ linux-2.6.21.1.new/fs/Makefile	2007-05-30 13:27:34.000000000 +0200 -@@ -116,3 +116,4 @@ - obj-$(CONFIG_DEBUG_FS)		+= debugfs/ - obj-$(CONFIG_OCFS2_FS)		+= ocfs2/ - obj-$(CONFIG_GFS2_FS)           += gfs2/ -+obj-$(CONFIG_YAFFS_FS)		+= yaffs2/ ---- linux-2.6.21.1/fs/Kconfig	2007-05-30 13:16:21.000000000 +0200 -+++ linux-2.6.21.1.new/fs/Kconfig	2007-05-30 13:29:14.000000000 +0200 -@@ -419,6 +419,7 @@ -  - source "fs/xfs/Kconfig" - source "fs/gfs2/Kconfig" -+source "fs/yaffs2/Kconfig" -  - config OCFS2_FS - 	tristate "OCFS2 file system support"  | 
