Просмотр исходного кода

Update the yaffs patch to include the fix by Giampaolo Mancini (mancho), closes #1779

SVN-Revision: 7534
Florian Fainelli 18 лет назад
Родитель
Сommit
4a00419fd0
1 измененных файлов с 92 добавлено и 66 удалено
  1. 92 66
      target/linux/generic-2.6/patches/510-Yaffs.patch

+ 92 - 66
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 [email protected] Fri May 18 15:06:49 2007
 +From [email protected] 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"