From d7b697d4ad0f4b5132e76af3f67680dc5d26e806 Mon Sep 17 00:00:00 2001 From: Gabor Juhos Date: Fri, 6 Jun 2008 13:14:59 +0000 Subject: generic-2.6: yaffs cleanup * reduce compiler warnings, * renumber/rename patches SVN-Revision: 11379 --- .../generic-2.6/patches-2.6.22/510-Yaffs.patch | 21 ----- .../patches-2.6.22/510-yaffs_support.patch | 21 +++++ .../511-yaffs_reduce_compiler_warnings.patch | 80 +++++++++++++++++++ .../generic-2.6/patches-2.6.23/510-Yaffs.patch | 17 ---- .../patches-2.6.23/510-yaffs_support.patch | 17 ++++ .../511-yaffs_reduce_compiler_warnings.patch | 80 +++++++++++++++++++ .../generic-2.6/patches-2.6.24/510-Yaffs.patch | 17 ---- .../patches-2.6.24/510-yaffs_support.patch | 17 ++++ .../511-yaffs_reduce_compiler_warnings.patch | 80 +++++++++++++++++++ .../generic-2.6/patches-2.6.25/510-Yaffs.patch | 17 ---- .../patches-2.6.25/510-yaffs_support.patch | 17 ++++ .../patches-2.6.25/511-yaffs_2.6.25_fix.patch | 92 ---------------------- .../511-yaffs_reduce_compiler_warnings.patch | 80 +++++++++++++++++++ .../patches-2.6.25/512-yaffs_2.6.25_fix.patch | 92 ++++++++++++++++++++++ .../generic-2.6/patches-2.6.26/510-Yaffs.patch | 17 ---- .../patches-2.6.26/510-yaffs_support.patch | 17 ++++ .../patches-2.6.26/511-yaffs_2.6.25_fix.patch | 92 ---------------------- .../511-yaffs_reduce_compiler_warnings.patch | 80 +++++++++++++++++++ .../patches-2.6.26/512-yaffs_2.6.25_fix.patch | 92 ++++++++++++++++++++++ target/linux/generic-2.6/patches/510-Yaffs.patch | 21 ----- .../generic-2.6/patches/510-yaffs_support.patch | 21 +++++ .../511-yaffs_reduce_compiler_warnings.patch | 80 +++++++++++++++++++ 22 files changed, 774 insertions(+), 294 deletions(-) delete mode 100644 target/linux/generic-2.6/patches-2.6.22/510-Yaffs.patch create mode 100644 target/linux/generic-2.6/patches-2.6.22/510-yaffs_support.patch create mode 100644 target/linux/generic-2.6/patches-2.6.22/511-yaffs_reduce_compiler_warnings.patch delete mode 100644 target/linux/generic-2.6/patches-2.6.23/510-Yaffs.patch create mode 100644 target/linux/generic-2.6/patches-2.6.23/510-yaffs_support.patch create mode 100644 target/linux/generic-2.6/patches-2.6.23/511-yaffs_reduce_compiler_warnings.patch delete mode 100644 target/linux/generic-2.6/patches-2.6.24/510-Yaffs.patch create mode 100644 target/linux/generic-2.6/patches-2.6.24/510-yaffs_support.patch create mode 100644 target/linux/generic-2.6/patches-2.6.24/511-yaffs_reduce_compiler_warnings.patch delete mode 100644 target/linux/generic-2.6/patches-2.6.25/510-Yaffs.patch create mode 100644 target/linux/generic-2.6/patches-2.6.25/510-yaffs_support.patch delete mode 100644 target/linux/generic-2.6/patches-2.6.25/511-yaffs_2.6.25_fix.patch create mode 100644 target/linux/generic-2.6/patches-2.6.25/511-yaffs_reduce_compiler_warnings.patch create mode 100644 target/linux/generic-2.6/patches-2.6.25/512-yaffs_2.6.25_fix.patch delete mode 100644 target/linux/generic-2.6/patches-2.6.26/510-Yaffs.patch create mode 100644 target/linux/generic-2.6/patches-2.6.26/510-yaffs_support.patch delete mode 100644 target/linux/generic-2.6/patches-2.6.26/511-yaffs_2.6.25_fix.patch create mode 100644 target/linux/generic-2.6/patches-2.6.26/511-yaffs_reduce_compiler_warnings.patch create mode 100644 target/linux/generic-2.6/patches-2.6.26/512-yaffs_2.6.25_fix.patch delete mode 100644 target/linux/generic-2.6/patches/510-Yaffs.patch create mode 100644 target/linux/generic-2.6/patches/510-yaffs_support.patch create mode 100644 target/linux/generic-2.6/patches/511-yaffs_reduce_compiler_warnings.patch (limited to 'target') diff --git a/target/linux/generic-2.6/patches-2.6.22/510-Yaffs.patch b/target/linux/generic-2.6/patches-2.6.22/510-Yaffs.patch deleted file mode 100644 index 57205568c5..0000000000 --- a/target/linux/generic-2.6/patches-2.6.22/510-Yaffs.patch +++ /dev/null @@ -1,21 +0,0 @@ -Index: linux-2.6.22.19/fs/Kconfig -=================================================================== ---- linux-2.6.22.19.orig/fs/Kconfig -+++ linux-2.6.22.19/fs/Kconfig -@@ -419,6 +419,7 @@ config FS_POSIX_ACL - - source "fs/xfs/Kconfig" - source "fs/gfs2/Kconfig" -+source "fs/yaffs2/Kconfig" - - config OCFS2_FS - tristate "OCFS2 file system support" -Index: linux-2.6.22.19/fs/Makefile -=================================================================== ---- linux-2.6.22.19.orig/fs/Makefile -+++ linux-2.6.22.19/fs/Makefile -@@ -120,3 +120,4 @@ obj-$(CONFIG_HPPFS) += hppfs/ - obj-$(CONFIG_DEBUG_FS) += debugfs/ - obj-$(CONFIG_OCFS2_FS) += ocfs2/ - obj-$(CONFIG_GFS2_FS) += gfs2/ -+obj-$(CONFIG_YAFFS_FS) += yaffs2/ diff --git a/target/linux/generic-2.6/patches-2.6.22/510-yaffs_support.patch b/target/linux/generic-2.6/patches-2.6.22/510-yaffs_support.patch new file mode 100644 index 0000000000..57205568c5 --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.22/510-yaffs_support.patch @@ -0,0 +1,21 @@ +Index: linux-2.6.22.19/fs/Kconfig +=================================================================== +--- linux-2.6.22.19.orig/fs/Kconfig ++++ linux-2.6.22.19/fs/Kconfig +@@ -419,6 +419,7 @@ config FS_POSIX_ACL + + source "fs/xfs/Kconfig" + source "fs/gfs2/Kconfig" ++source "fs/yaffs2/Kconfig" + + config OCFS2_FS + tristate "OCFS2 file system support" +Index: linux-2.6.22.19/fs/Makefile +=================================================================== +--- linux-2.6.22.19.orig/fs/Makefile ++++ linux-2.6.22.19/fs/Makefile +@@ -120,3 +120,4 @@ obj-$(CONFIG_HPPFS) += hppfs/ + obj-$(CONFIG_DEBUG_FS) += debugfs/ + obj-$(CONFIG_OCFS2_FS) += ocfs2/ + obj-$(CONFIG_GFS2_FS) += gfs2/ ++obj-$(CONFIG_YAFFS_FS) += yaffs2/ diff --git a/target/linux/generic-2.6/patches-2.6.22/511-yaffs_reduce_compiler_warnings.patch b/target/linux/generic-2.6/patches-2.6.22/511-yaffs_reduce_compiler_warnings.patch new file mode 100644 index 0000000000..61d0a7552c --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.22/511-yaffs_reduce_compiler_warnings.patch @@ -0,0 +1,80 @@ +--- a/fs/yaffs2/yaffs_fs.c ++++ b/fs/yaffs2/yaffs_fs.c +@@ -969,7 +970,7 @@ + f->f_version = inode->i_version; + } + +- list_for_each(i, &obj->variant.directoryVariant.children) { ++ list_for_each(i, (struct list_head *)&obj->variant.directoryVariant.children) { + curoffs++; + if (curoffs >= offset) { + l = list_entry(i, yaffs_Object, siblings); +@@ -1273,7 +1275,7 @@ + + if (target && + target->variantType == YAFFS_OBJECT_TYPE_DIRECTORY && +- !list_empty(&target->variant.directoryVariant.children)) { ++ !list_empty((struct list_head *)&target->variant.directoryVariant.children)) { + + T(YAFFS_TRACE_OS, (KERN_DEBUG "target is non-empty dir\n")); + +@@ -1529,7 +1531,7 @@ + yaffs_GrossUnlock(dev); + + /* we assume this is protected by lock_kernel() in mount/umount */ +- list_del(&dev->devList); ++ list_del((struct list_head *)&dev->devList); + + if(dev->spareBuffer){ + YFREE(dev->spareBuffer); +@@ -1864,7 +1866,7 @@ + dev->skipCheckpointWrite = options.skip_checkpoint_write; + + /* we assume this is protected by lock_kernel() in mount/umount */ +- list_add_tail(&dev->devList, &yaffs_dev_list); ++ list_add_tail((struct list_head *)&dev->devList, &yaffs_dev_list); + + init_MUTEX(&dev->grossLock); + +--- a/fs/yaffs2/yaffs_mtdif1.c ++++ b/fs/yaffs2/yaffs_mtdif1.c +@@ -323,7 +323,7 @@ + * Always returns YAFFS_OK. + */ + int nandmtd1_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * pState, int *pSequenceNumber) ++ yaffs_BlockState * pState, __u32 *pSequenceNumber) + { + struct mtd_info * mtd = dev->genericDevice; + int chunkNo = blockNo * dev->nChunksPerBlock; +--- a/fs/yaffs2/yaffs_mtdif1.h ++++ b/fs/yaffs2/yaffs_mtdif1.h +@@ -23,6 +23,6 @@ + int nandmtd1_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo); + + int nandmtd1_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * state, int *sequenceNumber); ++ yaffs_BlockState * state, __u32 *sequenceNumber); + + #endif +--- a/fs/yaffs2/yaffs_mtdif2.c ++++ b/fs/yaffs2/yaffs_mtdif2.c +@@ -204,7 +204,7 @@ + } + + int nandmtd2_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * state, int *sequenceNumber) ++ yaffs_BlockState * state, __u32 *sequenceNumber) + { + struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice); + int retval; +--- a/fs/yaffs2/yaffs_mtdif2.h ++++ b/fs/yaffs2/yaffs_mtdif2.h +@@ -24,6 +24,6 @@ + __u8 * data, yaffs_ExtendedTags * tags); + int nandmtd2_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo); + int nandmtd2_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * state, int *sequenceNumber); ++ yaffs_BlockState * state, __u32 *sequenceNumber); + + #endif diff --git a/target/linux/generic-2.6/patches-2.6.23/510-Yaffs.patch b/target/linux/generic-2.6/patches-2.6.23/510-Yaffs.patch deleted file mode 100644 index a48dfbbd2d..0000000000 --- a/target/linux/generic-2.6/patches-2.6.23/510-Yaffs.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- a/fs/Kconfig -+++ b/fs/Kconfig -@@ -419,6 +419,7 @@ - - source "fs/xfs/Kconfig" - source "fs/gfs2/Kconfig" -+source "fs/yaffs2/Kconfig" - - config OCFS2_FS - tristate "OCFS2 file system support" ---- a/fs/Makefile -+++ b/fs/Makefile -@@ -120,3 +120,4 @@ - obj-$(CONFIG_DEBUG_FS) += debugfs/ - obj-$(CONFIG_OCFS2_FS) += ocfs2/ - obj-$(CONFIG_GFS2_FS) += gfs2/ -+obj-$(CONFIG_YAFFS_FS) += yaffs2/ diff --git a/target/linux/generic-2.6/patches-2.6.23/510-yaffs_support.patch b/target/linux/generic-2.6/patches-2.6.23/510-yaffs_support.patch new file mode 100644 index 0000000000..a48dfbbd2d --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.23/510-yaffs_support.patch @@ -0,0 +1,17 @@ +--- a/fs/Kconfig ++++ b/fs/Kconfig +@@ -419,6 +419,7 @@ + + source "fs/xfs/Kconfig" + source "fs/gfs2/Kconfig" ++source "fs/yaffs2/Kconfig" + + config OCFS2_FS + tristate "OCFS2 file system support" +--- a/fs/Makefile ++++ b/fs/Makefile +@@ -120,3 +120,4 @@ + obj-$(CONFIG_DEBUG_FS) += debugfs/ + obj-$(CONFIG_OCFS2_FS) += ocfs2/ + obj-$(CONFIG_GFS2_FS) += gfs2/ ++obj-$(CONFIG_YAFFS_FS) += yaffs2/ diff --git a/target/linux/generic-2.6/patches-2.6.23/511-yaffs_reduce_compiler_warnings.patch b/target/linux/generic-2.6/patches-2.6.23/511-yaffs_reduce_compiler_warnings.patch new file mode 100644 index 0000000000..61d0a7552c --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.23/511-yaffs_reduce_compiler_warnings.patch @@ -0,0 +1,80 @@ +--- a/fs/yaffs2/yaffs_fs.c ++++ b/fs/yaffs2/yaffs_fs.c +@@ -969,7 +970,7 @@ + f->f_version = inode->i_version; + } + +- list_for_each(i, &obj->variant.directoryVariant.children) { ++ list_for_each(i, (struct list_head *)&obj->variant.directoryVariant.children) { + curoffs++; + if (curoffs >= offset) { + l = list_entry(i, yaffs_Object, siblings); +@@ -1273,7 +1275,7 @@ + + if (target && + target->variantType == YAFFS_OBJECT_TYPE_DIRECTORY && +- !list_empty(&target->variant.directoryVariant.children)) { ++ !list_empty((struct list_head *)&target->variant.directoryVariant.children)) { + + T(YAFFS_TRACE_OS, (KERN_DEBUG "target is non-empty dir\n")); + +@@ -1529,7 +1531,7 @@ + yaffs_GrossUnlock(dev); + + /* we assume this is protected by lock_kernel() in mount/umount */ +- list_del(&dev->devList); ++ list_del((struct list_head *)&dev->devList); + + if(dev->spareBuffer){ + YFREE(dev->spareBuffer); +@@ -1864,7 +1866,7 @@ + dev->skipCheckpointWrite = options.skip_checkpoint_write; + + /* we assume this is protected by lock_kernel() in mount/umount */ +- list_add_tail(&dev->devList, &yaffs_dev_list); ++ list_add_tail((struct list_head *)&dev->devList, &yaffs_dev_list); + + init_MUTEX(&dev->grossLock); + +--- a/fs/yaffs2/yaffs_mtdif1.c ++++ b/fs/yaffs2/yaffs_mtdif1.c +@@ -323,7 +323,7 @@ + * Always returns YAFFS_OK. + */ + int nandmtd1_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * pState, int *pSequenceNumber) ++ yaffs_BlockState * pState, __u32 *pSequenceNumber) + { + struct mtd_info * mtd = dev->genericDevice; + int chunkNo = blockNo * dev->nChunksPerBlock; +--- a/fs/yaffs2/yaffs_mtdif1.h ++++ b/fs/yaffs2/yaffs_mtdif1.h +@@ -23,6 +23,6 @@ + int nandmtd1_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo); + + int nandmtd1_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * state, int *sequenceNumber); ++ yaffs_BlockState * state, __u32 *sequenceNumber); + + #endif +--- a/fs/yaffs2/yaffs_mtdif2.c ++++ b/fs/yaffs2/yaffs_mtdif2.c +@@ -204,7 +204,7 @@ + } + + int nandmtd2_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * state, int *sequenceNumber) ++ yaffs_BlockState * state, __u32 *sequenceNumber) + { + struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice); + int retval; +--- a/fs/yaffs2/yaffs_mtdif2.h ++++ b/fs/yaffs2/yaffs_mtdif2.h +@@ -24,6 +24,6 @@ + __u8 * data, yaffs_ExtendedTags * tags); + int nandmtd2_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo); + int nandmtd2_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * state, int *sequenceNumber); ++ yaffs_BlockState * state, __u32 *sequenceNumber); + + #endif diff --git a/target/linux/generic-2.6/patches-2.6.24/510-Yaffs.patch b/target/linux/generic-2.6/patches-2.6.24/510-Yaffs.patch deleted file mode 100644 index d344136a4d..0000000000 --- a/target/linux/generic-2.6/patches-2.6.24/510-Yaffs.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- a/fs/Kconfig -+++ b/fs/Kconfig -@@ -420,6 +420,7 @@ - - source "fs/xfs/Kconfig" - source "fs/gfs2/Kconfig" -+source "fs/yaffs2/Kconfig" - - config OCFS2_FS - tristate "OCFS2 file system support" ---- a/fs/Makefile -+++ b/fs/Makefile -@@ -120,3 +120,4 @@ - obj-$(CONFIG_DEBUG_FS) += debugfs/ - obj-$(CONFIG_OCFS2_FS) += ocfs2/ - obj-$(CONFIG_GFS2_FS) += gfs2/ -+obj-$(CONFIG_YAFFS_FS) += yaffs2/ diff --git a/target/linux/generic-2.6/patches-2.6.24/510-yaffs_support.patch b/target/linux/generic-2.6/patches-2.6.24/510-yaffs_support.patch new file mode 100644 index 0000000000..d344136a4d --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.24/510-yaffs_support.patch @@ -0,0 +1,17 @@ +--- a/fs/Kconfig ++++ b/fs/Kconfig +@@ -420,6 +420,7 @@ + + source "fs/xfs/Kconfig" + source "fs/gfs2/Kconfig" ++source "fs/yaffs2/Kconfig" + + config OCFS2_FS + tristate "OCFS2 file system support" +--- a/fs/Makefile ++++ b/fs/Makefile +@@ -120,3 +120,4 @@ + obj-$(CONFIG_DEBUG_FS) += debugfs/ + obj-$(CONFIG_OCFS2_FS) += ocfs2/ + obj-$(CONFIG_GFS2_FS) += gfs2/ ++obj-$(CONFIG_YAFFS_FS) += yaffs2/ diff --git a/target/linux/generic-2.6/patches-2.6.24/511-yaffs_reduce_compiler_warnings.patch b/target/linux/generic-2.6/patches-2.6.24/511-yaffs_reduce_compiler_warnings.patch new file mode 100644 index 0000000000..118cb67c37 --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.24/511-yaffs_reduce_compiler_warnings.patch @@ -0,0 +1,80 @@ +--- a/fs/yaffs2/yaffs_fs.c ++++ b/fs/yaffs2/yaffs_fs.c +@@ -969,7 +969,7 @@ + f->f_version = inode->i_version; + } + +- list_for_each(i, &obj->variant.directoryVariant.children) { ++ list_for_each(i, (struct list_head *)&obj->variant.directoryVariant.children) { + curoffs++; + if (curoffs >= offset) { + l = list_entry(i, yaffs_Object, siblings); +@@ -1273,7 +1273,7 @@ + + if (target && + target->variantType == YAFFS_OBJECT_TYPE_DIRECTORY && +- !list_empty(&target->variant.directoryVariant.children)) { ++ !list_empty((struct list_head *)&target->variant.directoryVariant.children)) { + + T(YAFFS_TRACE_OS, (KERN_DEBUG "target is non-empty dir\n")); + +@@ -1529,7 +1529,7 @@ + yaffs_GrossUnlock(dev); + + /* we assume this is protected by lock_kernel() in mount/umount */ +- list_del(&dev->devList); ++ list_del((struct list_head *)&dev->devList); + + if(dev->spareBuffer){ + YFREE(dev->spareBuffer); +@@ -1864,7 +1864,7 @@ + dev->skipCheckpointWrite = options.skip_checkpoint_write; + + /* we assume this is protected by lock_kernel() in mount/umount */ +- list_add_tail(&dev->devList, &yaffs_dev_list); ++ list_add_tail((struct list_head *)&dev->devList, &yaffs_dev_list); + + init_MUTEX(&dev->grossLock); + +--- a/fs/yaffs2/yaffs_mtdif1.c ++++ b/fs/yaffs2/yaffs_mtdif1.c +@@ -323,7 +323,7 @@ + * Always returns YAFFS_OK. + */ + int nandmtd1_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * pState, int *pSequenceNumber) ++ yaffs_BlockState * pState, __u32 *pSequenceNumber) + { + struct mtd_info * mtd = dev->genericDevice; + int chunkNo = blockNo * dev->nChunksPerBlock; +--- a/fs/yaffs2/yaffs_mtdif1.h ++++ b/fs/yaffs2/yaffs_mtdif1.h +@@ -23,6 +23,6 @@ + int nandmtd1_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo); + + int nandmtd1_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * state, int *sequenceNumber); ++ yaffs_BlockState * state, __u32 *sequenceNumber); + + #endif +--- a/fs/yaffs2/yaffs_mtdif2.c ++++ b/fs/yaffs2/yaffs_mtdif2.c +@@ -204,7 +204,7 @@ + } + + int nandmtd2_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * state, int *sequenceNumber) ++ yaffs_BlockState * state, __u32 *sequenceNumber) + { + struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice); + int retval; +--- a/fs/yaffs2/yaffs_mtdif2.h ++++ b/fs/yaffs2/yaffs_mtdif2.h +@@ -24,6 +24,6 @@ + __u8 * data, yaffs_ExtendedTags * tags); + int nandmtd2_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo); + int nandmtd2_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * state, int *sequenceNumber); ++ yaffs_BlockState * state, __u32 *sequenceNumber); + + #endif diff --git a/target/linux/generic-2.6/patches-2.6.25/510-Yaffs.patch b/target/linux/generic-2.6/patches-2.6.25/510-Yaffs.patch deleted file mode 100644 index e0f1a9befb..0000000000 --- a/target/linux/generic-2.6/patches-2.6.25/510-Yaffs.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- a/fs/Kconfig -+++ b/fs/Kconfig -@@ -421,6 +421,7 @@ - - source "fs/xfs/Kconfig" - source "fs/gfs2/Kconfig" -+source "fs/yaffs2/Kconfig" - - config OCFS2_FS - tristate "OCFS2 file system support" ---- a/fs/Makefile -+++ b/fs/Makefile -@@ -121,3 +121,4 @@ - obj-$(CONFIG_DEBUG_FS) += debugfs/ - obj-$(CONFIG_OCFS2_FS) += ocfs2/ - obj-$(CONFIG_GFS2_FS) += gfs2/ -+obj-$(CONFIG_YAFFS_FS) += yaffs2/ diff --git a/target/linux/generic-2.6/patches-2.6.25/510-yaffs_support.patch b/target/linux/generic-2.6/patches-2.6.25/510-yaffs_support.patch new file mode 100644 index 0000000000..e0f1a9befb --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.25/510-yaffs_support.patch @@ -0,0 +1,17 @@ +--- a/fs/Kconfig ++++ b/fs/Kconfig +@@ -421,6 +421,7 @@ + + source "fs/xfs/Kconfig" + source "fs/gfs2/Kconfig" ++source "fs/yaffs2/Kconfig" + + config OCFS2_FS + tristate "OCFS2 file system support" +--- a/fs/Makefile ++++ b/fs/Makefile +@@ -121,3 +121,4 @@ + obj-$(CONFIG_DEBUG_FS) += debugfs/ + obj-$(CONFIG_OCFS2_FS) += ocfs2/ + obj-$(CONFIG_GFS2_FS) += gfs2/ ++obj-$(CONFIG_YAFFS_FS) += yaffs2/ diff --git a/target/linux/generic-2.6/patches-2.6.25/511-yaffs_2.6.25_fix.patch b/target/linux/generic-2.6/patches-2.6.25/511-yaffs_2.6.25_fix.patch deleted file mode 100644 index ac895342f6..0000000000 --- a/target/linux/generic-2.6/patches-2.6.25/511-yaffs_2.6.25_fix.patch +++ /dev/null @@ -1,92 +0,0 @@ ---- a/fs/yaffs2/yaffs_fs.c -+++ b/fs/yaffs2/yaffs_fs.c -@@ -181,7 +181,13 @@ - #else - static int yaffs_statfs(struct super_block *sb, struct statfs *buf); - #endif -+ -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)) -+static struct inode *yaffs_iget(struct super_block *sb, unsigned long ino); -+#else - static void yaffs_read_inode(struct inode *inode); -+#endif -+ - - static void yaffs_put_inode(struct inode *inode); - static void yaffs_delete_inode(struct inode *); -@@ -284,7 +290,9 @@ - - static struct super_operations yaffs_super_ops = { - .statfs = yaffs_statfs, -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)) - .read_inode = yaffs_read_inode, -+#endif - .put_inode = yaffs_put_inode, - .put_super = yaffs_put_super, - .delete_inode = yaffs_delete_inode, -@@ -844,11 +852,17 @@ - T(YAFFS_TRACE_OS, - (KERN_DEBUG "yaffs_get_inode for object %d\n", obj->objectId)); - -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)) -+ inode = yaffs_iget(sb, obj->objectId); -+ if (IS_ERR(inode)) -+ return NULL; -+#else - inode = iget(sb, obj->objectId); - - /* NB Side effect: iget calls back to yaffs_read_inode(). */ - /* iget also increments the inode's i_count */ - /* NB You can't be holding grossLock or deadlock will happen! */ -+#endif - - return inode; - } -@@ -1427,6 +1441,39 @@ - } - - -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)) -+static struct inode *yaffs_iget(struct super_block *sb, unsigned long ino) -+{ -+ yaffs_Object *obj; -+ yaffs_Device *dev = yaffs_SuperToDevice(sb); -+ struct inode *inode; -+ -+ T(YAFFS_TRACE_OS, -+ (KERN_DEBUG "yaffs_iget for %lu\n", ino)); -+ -+ inode = iget_locked(sb, ino); -+ if (!inode) -+ return ERR_PTR(-ENOMEM); -+ if (!(inode->i_state & I_NEW)) -+ return inode; -+ -+ /* NB This is called as a side effect of other functions, but -+ * we had to release the lock to prevent deadlocks, so -+ * need to lock again. -+ */ -+ -+ yaffs_GrossLock(dev); -+ -+ obj = yaffs_FindObjectByNumber(dev, inode->i_ino); -+ -+ yaffs_FillInodeFromObject(inode, obj); -+ -+ yaffs_GrossUnlock(dev); -+ -+ unlock_new_inode(inode); -+ return inode; -+} -+#else - static void yaffs_read_inode(struct inode *inode) - { - /* NB This is called as a side effect of other functions, but -@@ -1448,6 +1495,7 @@ - - yaffs_GrossUnlock(dev); - } -+#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)) */ - - static LIST_HEAD(yaffs_dev_list); - diff --git a/target/linux/generic-2.6/patches-2.6.25/511-yaffs_reduce_compiler_warnings.patch b/target/linux/generic-2.6/patches-2.6.25/511-yaffs_reduce_compiler_warnings.patch new file mode 100644 index 0000000000..61d0a7552c --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.25/511-yaffs_reduce_compiler_warnings.patch @@ -0,0 +1,80 @@ +--- a/fs/yaffs2/yaffs_fs.c ++++ b/fs/yaffs2/yaffs_fs.c +@@ -969,7 +970,7 @@ + f->f_version = inode->i_version; + } + +- list_for_each(i, &obj->variant.directoryVariant.children) { ++ list_for_each(i, (struct list_head *)&obj->variant.directoryVariant.children) { + curoffs++; + if (curoffs >= offset) { + l = list_entry(i, yaffs_Object, siblings); +@@ -1273,7 +1275,7 @@ + + if (target && + target->variantType == YAFFS_OBJECT_TYPE_DIRECTORY && +- !list_empty(&target->variant.directoryVariant.children)) { ++ !list_empty((struct list_head *)&target->variant.directoryVariant.children)) { + + T(YAFFS_TRACE_OS, (KERN_DEBUG "target is non-empty dir\n")); + +@@ -1529,7 +1531,7 @@ + yaffs_GrossUnlock(dev); + + /* we assume this is protected by lock_kernel() in mount/umount */ +- list_del(&dev->devList); ++ list_del((struct list_head *)&dev->devList); + + if(dev->spareBuffer){ + YFREE(dev->spareBuffer); +@@ -1864,7 +1866,7 @@ + dev->skipCheckpointWrite = options.skip_checkpoint_write; + + /* we assume this is protected by lock_kernel() in mount/umount */ +- list_add_tail(&dev->devList, &yaffs_dev_list); ++ list_add_tail((struct list_head *)&dev->devList, &yaffs_dev_list); + + init_MUTEX(&dev->grossLock); + +--- a/fs/yaffs2/yaffs_mtdif1.c ++++ b/fs/yaffs2/yaffs_mtdif1.c +@@ -323,7 +323,7 @@ + * Always returns YAFFS_OK. + */ + int nandmtd1_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * pState, int *pSequenceNumber) ++ yaffs_BlockState * pState, __u32 *pSequenceNumber) + { + struct mtd_info * mtd = dev->genericDevice; + int chunkNo = blockNo * dev->nChunksPerBlock; +--- a/fs/yaffs2/yaffs_mtdif1.h ++++ b/fs/yaffs2/yaffs_mtdif1.h +@@ -23,6 +23,6 @@ + int nandmtd1_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo); + + int nandmtd1_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * state, int *sequenceNumber); ++ yaffs_BlockState * state, __u32 *sequenceNumber); + + #endif +--- a/fs/yaffs2/yaffs_mtdif2.c ++++ b/fs/yaffs2/yaffs_mtdif2.c +@@ -204,7 +204,7 @@ + } + + int nandmtd2_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * state, int *sequenceNumber) ++ yaffs_BlockState * state, __u32 *sequenceNumber) + { + struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice); + int retval; +--- a/fs/yaffs2/yaffs_mtdif2.h ++++ b/fs/yaffs2/yaffs_mtdif2.h +@@ -24,6 +24,6 @@ + __u8 * data, yaffs_ExtendedTags * tags); + int nandmtd2_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo); + int nandmtd2_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * state, int *sequenceNumber); ++ yaffs_BlockState * state, __u32 *sequenceNumber); + + #endif diff --git a/target/linux/generic-2.6/patches-2.6.25/512-yaffs_2.6.25_fix.patch b/target/linux/generic-2.6/patches-2.6.25/512-yaffs_2.6.25_fix.patch new file mode 100644 index 0000000000..ac895342f6 --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.25/512-yaffs_2.6.25_fix.patch @@ -0,0 +1,92 @@ +--- a/fs/yaffs2/yaffs_fs.c ++++ b/fs/yaffs2/yaffs_fs.c +@@ -181,7 +181,13 @@ + #else + static int yaffs_statfs(struct super_block *sb, struct statfs *buf); + #endif ++ ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)) ++static struct inode *yaffs_iget(struct super_block *sb, unsigned long ino); ++#else + static void yaffs_read_inode(struct inode *inode); ++#endif ++ + + static void yaffs_put_inode(struct inode *inode); + static void yaffs_delete_inode(struct inode *); +@@ -284,7 +290,9 @@ + + static struct super_operations yaffs_super_ops = { + .statfs = yaffs_statfs, ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)) + .read_inode = yaffs_read_inode, ++#endif + .put_inode = yaffs_put_inode, + .put_super = yaffs_put_super, + .delete_inode = yaffs_delete_inode, +@@ -844,11 +852,17 @@ + T(YAFFS_TRACE_OS, + (KERN_DEBUG "yaffs_get_inode for object %d\n", obj->objectId)); + ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)) ++ inode = yaffs_iget(sb, obj->objectId); ++ if (IS_ERR(inode)) ++ return NULL; ++#else + inode = iget(sb, obj->objectId); + + /* NB Side effect: iget calls back to yaffs_read_inode(). */ + /* iget also increments the inode's i_count */ + /* NB You can't be holding grossLock or deadlock will happen! */ ++#endif + + return inode; + } +@@ -1427,6 +1441,39 @@ + } + + ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)) ++static struct inode *yaffs_iget(struct super_block *sb, unsigned long ino) ++{ ++ yaffs_Object *obj; ++ yaffs_Device *dev = yaffs_SuperToDevice(sb); ++ struct inode *inode; ++ ++ T(YAFFS_TRACE_OS, ++ (KERN_DEBUG "yaffs_iget for %lu\n", ino)); ++ ++ inode = iget_locked(sb, ino); ++ if (!inode) ++ return ERR_PTR(-ENOMEM); ++ if (!(inode->i_state & I_NEW)) ++ return inode; ++ ++ /* NB This is called as a side effect of other functions, but ++ * we had to release the lock to prevent deadlocks, so ++ * need to lock again. ++ */ ++ ++ yaffs_GrossLock(dev); ++ ++ obj = yaffs_FindObjectByNumber(dev, inode->i_ino); ++ ++ yaffs_FillInodeFromObject(inode, obj); ++ ++ yaffs_GrossUnlock(dev); ++ ++ unlock_new_inode(inode); ++ return inode; ++} ++#else + static void yaffs_read_inode(struct inode *inode) + { + /* NB This is called as a side effect of other functions, but +@@ -1448,6 +1495,7 @@ + + yaffs_GrossUnlock(dev); + } ++#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)) */ + + static LIST_HEAD(yaffs_dev_list); + diff --git a/target/linux/generic-2.6/patches-2.6.26/510-Yaffs.patch b/target/linux/generic-2.6/patches-2.6.26/510-Yaffs.patch deleted file mode 100644 index e0f1a9befb..0000000000 --- a/target/linux/generic-2.6/patches-2.6.26/510-Yaffs.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- a/fs/Kconfig -+++ b/fs/Kconfig -@@ -421,6 +421,7 @@ - - source "fs/xfs/Kconfig" - source "fs/gfs2/Kconfig" -+source "fs/yaffs2/Kconfig" - - config OCFS2_FS - tristate "OCFS2 file system support" ---- a/fs/Makefile -+++ b/fs/Makefile -@@ -121,3 +121,4 @@ - obj-$(CONFIG_DEBUG_FS) += debugfs/ - obj-$(CONFIG_OCFS2_FS) += ocfs2/ - obj-$(CONFIG_GFS2_FS) += gfs2/ -+obj-$(CONFIG_YAFFS_FS) += yaffs2/ diff --git a/target/linux/generic-2.6/patches-2.6.26/510-yaffs_support.patch b/target/linux/generic-2.6/patches-2.6.26/510-yaffs_support.patch new file mode 100644 index 0000000000..e0f1a9befb --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.26/510-yaffs_support.patch @@ -0,0 +1,17 @@ +--- a/fs/Kconfig ++++ b/fs/Kconfig +@@ -421,6 +421,7 @@ + + source "fs/xfs/Kconfig" + source "fs/gfs2/Kconfig" ++source "fs/yaffs2/Kconfig" + + config OCFS2_FS + tristate "OCFS2 file system support" +--- a/fs/Makefile ++++ b/fs/Makefile +@@ -121,3 +121,4 @@ + obj-$(CONFIG_DEBUG_FS) += debugfs/ + obj-$(CONFIG_OCFS2_FS) += ocfs2/ + obj-$(CONFIG_GFS2_FS) += gfs2/ ++obj-$(CONFIG_YAFFS_FS) += yaffs2/ diff --git a/target/linux/generic-2.6/patches-2.6.26/511-yaffs_2.6.25_fix.patch b/target/linux/generic-2.6/patches-2.6.26/511-yaffs_2.6.25_fix.patch deleted file mode 100644 index ac895342f6..0000000000 --- a/target/linux/generic-2.6/patches-2.6.26/511-yaffs_2.6.25_fix.patch +++ /dev/null @@ -1,92 +0,0 @@ ---- a/fs/yaffs2/yaffs_fs.c -+++ b/fs/yaffs2/yaffs_fs.c -@@ -181,7 +181,13 @@ - #else - static int yaffs_statfs(struct super_block *sb, struct statfs *buf); - #endif -+ -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)) -+static struct inode *yaffs_iget(struct super_block *sb, unsigned long ino); -+#else - static void yaffs_read_inode(struct inode *inode); -+#endif -+ - - static void yaffs_put_inode(struct inode *inode); - static void yaffs_delete_inode(struct inode *); -@@ -284,7 +290,9 @@ - - static struct super_operations yaffs_super_ops = { - .statfs = yaffs_statfs, -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)) - .read_inode = yaffs_read_inode, -+#endif - .put_inode = yaffs_put_inode, - .put_super = yaffs_put_super, - .delete_inode = yaffs_delete_inode, -@@ -844,11 +852,17 @@ - T(YAFFS_TRACE_OS, - (KERN_DEBUG "yaffs_get_inode for object %d\n", obj->objectId)); - -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)) -+ inode = yaffs_iget(sb, obj->objectId); -+ if (IS_ERR(inode)) -+ return NULL; -+#else - inode = iget(sb, obj->objectId); - - /* NB Side effect: iget calls back to yaffs_read_inode(). */ - /* iget also increments the inode's i_count */ - /* NB You can't be holding grossLock or deadlock will happen! */ -+#endif - - return inode; - } -@@ -1427,6 +1441,39 @@ - } - - -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)) -+static struct inode *yaffs_iget(struct super_block *sb, unsigned long ino) -+{ -+ yaffs_Object *obj; -+ yaffs_Device *dev = yaffs_SuperToDevice(sb); -+ struct inode *inode; -+ -+ T(YAFFS_TRACE_OS, -+ (KERN_DEBUG "yaffs_iget for %lu\n", ino)); -+ -+ inode = iget_locked(sb, ino); -+ if (!inode) -+ return ERR_PTR(-ENOMEM); -+ if (!(inode->i_state & I_NEW)) -+ return inode; -+ -+ /* NB This is called as a side effect of other functions, but -+ * we had to release the lock to prevent deadlocks, so -+ * need to lock again. -+ */ -+ -+ yaffs_GrossLock(dev); -+ -+ obj = yaffs_FindObjectByNumber(dev, inode->i_ino); -+ -+ yaffs_FillInodeFromObject(inode, obj); -+ -+ yaffs_GrossUnlock(dev); -+ -+ unlock_new_inode(inode); -+ return inode; -+} -+#else - static void yaffs_read_inode(struct inode *inode) - { - /* NB This is called as a side effect of other functions, but -@@ -1448,6 +1495,7 @@ - - yaffs_GrossUnlock(dev); - } -+#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)) */ - - static LIST_HEAD(yaffs_dev_list); - diff --git a/target/linux/generic-2.6/patches-2.6.26/511-yaffs_reduce_compiler_warnings.patch b/target/linux/generic-2.6/patches-2.6.26/511-yaffs_reduce_compiler_warnings.patch new file mode 100644 index 0000000000..61d0a7552c --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.26/511-yaffs_reduce_compiler_warnings.patch @@ -0,0 +1,80 @@ +--- a/fs/yaffs2/yaffs_fs.c ++++ b/fs/yaffs2/yaffs_fs.c +@@ -969,7 +970,7 @@ + f->f_version = inode->i_version; + } + +- list_for_each(i, &obj->variant.directoryVariant.children) { ++ list_for_each(i, (struct list_head *)&obj->variant.directoryVariant.children) { + curoffs++; + if (curoffs >= offset) { + l = list_entry(i, yaffs_Object, siblings); +@@ -1273,7 +1275,7 @@ + + if (target && + target->variantType == YAFFS_OBJECT_TYPE_DIRECTORY && +- !list_empty(&target->variant.directoryVariant.children)) { ++ !list_empty((struct list_head *)&target->variant.directoryVariant.children)) { + + T(YAFFS_TRACE_OS, (KERN_DEBUG "target is non-empty dir\n")); + +@@ -1529,7 +1531,7 @@ + yaffs_GrossUnlock(dev); + + /* we assume this is protected by lock_kernel() in mount/umount */ +- list_del(&dev->devList); ++ list_del((struct list_head *)&dev->devList); + + if(dev->spareBuffer){ + YFREE(dev->spareBuffer); +@@ -1864,7 +1866,7 @@ + dev->skipCheckpointWrite = options.skip_checkpoint_write; + + /* we assume this is protected by lock_kernel() in mount/umount */ +- list_add_tail(&dev->devList, &yaffs_dev_list); ++ list_add_tail((struct list_head *)&dev->devList, &yaffs_dev_list); + + init_MUTEX(&dev->grossLock); + +--- a/fs/yaffs2/yaffs_mtdif1.c ++++ b/fs/yaffs2/yaffs_mtdif1.c +@@ -323,7 +323,7 @@ + * Always returns YAFFS_OK. + */ + int nandmtd1_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * pState, int *pSequenceNumber) ++ yaffs_BlockState * pState, __u32 *pSequenceNumber) + { + struct mtd_info * mtd = dev->genericDevice; + int chunkNo = blockNo * dev->nChunksPerBlock; +--- a/fs/yaffs2/yaffs_mtdif1.h ++++ b/fs/yaffs2/yaffs_mtdif1.h +@@ -23,6 +23,6 @@ + int nandmtd1_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo); + + int nandmtd1_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * state, int *sequenceNumber); ++ yaffs_BlockState * state, __u32 *sequenceNumber); + + #endif +--- a/fs/yaffs2/yaffs_mtdif2.c ++++ b/fs/yaffs2/yaffs_mtdif2.c +@@ -204,7 +204,7 @@ + } + + int nandmtd2_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * state, int *sequenceNumber) ++ yaffs_BlockState * state, __u32 *sequenceNumber) + { + struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice); + int retval; +--- a/fs/yaffs2/yaffs_mtdif2.h ++++ b/fs/yaffs2/yaffs_mtdif2.h +@@ -24,6 +24,6 @@ + __u8 * data, yaffs_ExtendedTags * tags); + int nandmtd2_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo); + int nandmtd2_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * state, int *sequenceNumber); ++ yaffs_BlockState * state, __u32 *sequenceNumber); + + #endif diff --git a/target/linux/generic-2.6/patches-2.6.26/512-yaffs_2.6.25_fix.patch b/target/linux/generic-2.6/patches-2.6.26/512-yaffs_2.6.25_fix.patch new file mode 100644 index 0000000000..ac895342f6 --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.26/512-yaffs_2.6.25_fix.patch @@ -0,0 +1,92 @@ +--- a/fs/yaffs2/yaffs_fs.c ++++ b/fs/yaffs2/yaffs_fs.c +@@ -181,7 +181,13 @@ + #else + static int yaffs_statfs(struct super_block *sb, struct statfs *buf); + #endif ++ ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)) ++static struct inode *yaffs_iget(struct super_block *sb, unsigned long ino); ++#else + static void yaffs_read_inode(struct inode *inode); ++#endif ++ + + static void yaffs_put_inode(struct inode *inode); + static void yaffs_delete_inode(struct inode *); +@@ -284,7 +290,9 @@ + + static struct super_operations yaffs_super_ops = { + .statfs = yaffs_statfs, ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)) + .read_inode = yaffs_read_inode, ++#endif + .put_inode = yaffs_put_inode, + .put_super = yaffs_put_super, + .delete_inode = yaffs_delete_inode, +@@ -844,11 +852,17 @@ + T(YAFFS_TRACE_OS, + (KERN_DEBUG "yaffs_get_inode for object %d\n", obj->objectId)); + ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)) ++ inode = yaffs_iget(sb, obj->objectId); ++ if (IS_ERR(inode)) ++ return NULL; ++#else + inode = iget(sb, obj->objectId); + + /* NB Side effect: iget calls back to yaffs_read_inode(). */ + /* iget also increments the inode's i_count */ + /* NB You can't be holding grossLock or deadlock will happen! */ ++#endif + + return inode; + } +@@ -1427,6 +1441,39 @@ + } + + ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)) ++static struct inode *yaffs_iget(struct super_block *sb, unsigned long ino) ++{ ++ yaffs_Object *obj; ++ yaffs_Device *dev = yaffs_SuperToDevice(sb); ++ struct inode *inode; ++ ++ T(YAFFS_TRACE_OS, ++ (KERN_DEBUG "yaffs_iget for %lu\n", ino)); ++ ++ inode = iget_locked(sb, ino); ++ if (!inode) ++ return ERR_PTR(-ENOMEM); ++ if (!(inode->i_state & I_NEW)) ++ return inode; ++ ++ /* NB This is called as a side effect of other functions, but ++ * we had to release the lock to prevent deadlocks, so ++ * need to lock again. ++ */ ++ ++ yaffs_GrossLock(dev); ++ ++ obj = yaffs_FindObjectByNumber(dev, inode->i_ino); ++ ++ yaffs_FillInodeFromObject(inode, obj); ++ ++ yaffs_GrossUnlock(dev); ++ ++ unlock_new_inode(inode); ++ return inode; ++} ++#else + static void yaffs_read_inode(struct inode *inode) + { + /* NB This is called as a side effect of other functions, but +@@ -1448,6 +1495,7 @@ + + yaffs_GrossUnlock(dev); + } ++#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)) */ + + static LIST_HEAD(yaffs_dev_list); + diff --git a/target/linux/generic-2.6/patches/510-Yaffs.patch b/target/linux/generic-2.6/patches/510-Yaffs.patch deleted file mode 100644 index 233cd20392..0000000000 --- a/target/linux/generic-2.6/patches/510-Yaffs.patch +++ /dev/null @@ -1,21 +0,0 @@ -Index: linux-2.6.21.7/fs/Kconfig -=================================================================== ---- linux-2.6.21.7.orig/fs/Kconfig -+++ linux-2.6.21.7/fs/Kconfig -@@ -419,6 +419,7 @@ config FS_POSIX_ACL - - source "fs/xfs/Kconfig" - source "fs/gfs2/Kconfig" -+source "fs/yaffs2/Kconfig" - - config OCFS2_FS - tristate "OCFS2 file system support" -Index: linux-2.6.21.7/fs/Makefile -=================================================================== ---- linux-2.6.21.7.orig/fs/Makefile -+++ linux-2.6.21.7/fs/Makefile -@@ -116,3 +116,4 @@ obj-$(CONFIG_HPPFS) += hppfs/ - obj-$(CONFIG_DEBUG_FS) += debugfs/ - obj-$(CONFIG_OCFS2_FS) += ocfs2/ - obj-$(CONFIG_GFS2_FS) += gfs2/ -+obj-$(CONFIG_YAFFS_FS) += yaffs2/ diff --git a/target/linux/generic-2.6/patches/510-yaffs_support.patch b/target/linux/generic-2.6/patches/510-yaffs_support.patch new file mode 100644 index 0000000000..233cd20392 --- /dev/null +++ b/target/linux/generic-2.6/patches/510-yaffs_support.patch @@ -0,0 +1,21 @@ +Index: linux-2.6.21.7/fs/Kconfig +=================================================================== +--- linux-2.6.21.7.orig/fs/Kconfig ++++ linux-2.6.21.7/fs/Kconfig +@@ -419,6 +419,7 @@ config FS_POSIX_ACL + + source "fs/xfs/Kconfig" + source "fs/gfs2/Kconfig" ++source "fs/yaffs2/Kconfig" + + config OCFS2_FS + tristate "OCFS2 file system support" +Index: linux-2.6.21.7/fs/Makefile +=================================================================== +--- linux-2.6.21.7.orig/fs/Makefile ++++ linux-2.6.21.7/fs/Makefile +@@ -116,3 +116,4 @@ obj-$(CONFIG_HPPFS) += hppfs/ + obj-$(CONFIG_DEBUG_FS) += debugfs/ + obj-$(CONFIG_OCFS2_FS) += ocfs2/ + obj-$(CONFIG_GFS2_FS) += gfs2/ ++obj-$(CONFIG_YAFFS_FS) += yaffs2/ diff --git a/target/linux/generic-2.6/patches/511-yaffs_reduce_compiler_warnings.patch b/target/linux/generic-2.6/patches/511-yaffs_reduce_compiler_warnings.patch new file mode 100644 index 0000000000..61d0a7552c --- /dev/null +++ b/target/linux/generic-2.6/patches/511-yaffs_reduce_compiler_warnings.patch @@ -0,0 +1,80 @@ +--- a/fs/yaffs2/yaffs_fs.c ++++ b/fs/yaffs2/yaffs_fs.c +@@ -969,7 +970,7 @@ + f->f_version = inode->i_version; + } + +- list_for_each(i, &obj->variant.directoryVariant.children) { ++ list_for_each(i, (struct list_head *)&obj->variant.directoryVariant.children) { + curoffs++; + if (curoffs >= offset) { + l = list_entry(i, yaffs_Object, siblings); +@@ -1273,7 +1275,7 @@ + + if (target && + target->variantType == YAFFS_OBJECT_TYPE_DIRECTORY && +- !list_empty(&target->variant.directoryVariant.children)) { ++ !list_empty((struct list_head *)&target->variant.directoryVariant.children)) { + + T(YAFFS_TRACE_OS, (KERN_DEBUG "target is non-empty dir\n")); + +@@ -1529,7 +1531,7 @@ + yaffs_GrossUnlock(dev); + + /* we assume this is protected by lock_kernel() in mount/umount */ +- list_del(&dev->devList); ++ list_del((struct list_head *)&dev->devList); + + if(dev->spareBuffer){ + YFREE(dev->spareBuffer); +@@ -1864,7 +1866,7 @@ + dev->skipCheckpointWrite = options.skip_checkpoint_write; + + /* we assume this is protected by lock_kernel() in mount/umount */ +- list_add_tail(&dev->devList, &yaffs_dev_list); ++ list_add_tail((struct list_head *)&dev->devList, &yaffs_dev_list); + + init_MUTEX(&dev->grossLock); + +--- a/fs/yaffs2/yaffs_mtdif1.c ++++ b/fs/yaffs2/yaffs_mtdif1.c +@@ -323,7 +323,7 @@ + * Always returns YAFFS_OK. + */ + int nandmtd1_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * pState, int *pSequenceNumber) ++ yaffs_BlockState * pState, __u32 *pSequenceNumber) + { + struct mtd_info * mtd = dev->genericDevice; + int chunkNo = blockNo * dev->nChunksPerBlock; +--- a/fs/yaffs2/yaffs_mtdif1.h ++++ b/fs/yaffs2/yaffs_mtdif1.h +@@ -23,6 +23,6 @@ + int nandmtd1_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo); + + int nandmtd1_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * state, int *sequenceNumber); ++ yaffs_BlockState * state, __u32 *sequenceNumber); + + #endif +--- a/fs/yaffs2/yaffs_mtdif2.c ++++ b/fs/yaffs2/yaffs_mtdif2.c +@@ -204,7 +204,7 @@ + } + + int nandmtd2_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * state, int *sequenceNumber) ++ yaffs_BlockState * state, __u32 *sequenceNumber) + { + struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice); + int retval; +--- a/fs/yaffs2/yaffs_mtdif2.h ++++ b/fs/yaffs2/yaffs_mtdif2.h +@@ -24,6 +24,6 @@ + __u8 * data, yaffs_ExtendedTags * tags); + int nandmtd2_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo); + int nandmtd2_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, +- yaffs_BlockState * state, int *sequenceNumber); ++ yaffs_BlockState * state, __u32 *sequenceNumber); + + #endif -- cgit v1.2.3