diff options
Diffstat (limited to 'features/yaffs2/yaffs2-import-git-revision-b4ce1bb-jan-2020.patch')
-rw-r--r-- | features/yaffs2/yaffs2-import-git-revision-b4ce1bb-jan-2020.patch | 491 |
1 files changed, 8 insertions, 483 deletions
diff --git a/features/yaffs2/yaffs2-import-git-revision-b4ce1bb-jan-2020.patch b/features/yaffs2/yaffs2-import-git-revision-b4ce1bb-jan-2020.patch index 53673b8a..ef8109c8 100644 --- a/features/yaffs2/yaffs2-import-git-revision-b4ce1bb-jan-2020.patch +++ b/features/yaffs2/yaffs2-import-git-revision-b4ce1bb-jan-2020.patch @@ -1,4 +1,4 @@ -From 8c6f9b2baa402d8c9269fc08ccb26c1126e28f62 Mon Sep 17 00:00:00 2001 +From 5fd0c1a67df759fe4d214f645c6bbdfb72e95518 Mon Sep 17 00:00:00 2001 From: Bruce Ashfield <bruce.ashfield@gmail.com> Date: Mon, 13 Jan 2020 12:19:30 -0500 Subject: [PATCH] yaffs2: import git revision b4ce1bb (jan, 2020) @@ -6,9 +6,7 @@ Subject: [PATCH] yaffs2: import git revision b4ce1bb (jan, 2020) Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> --- fs/Kconfig | 1 + - fs/Kconfig.pre.yaffs | 325 ++ fs/Makefile | 1 + - fs/Makefile.pre.yaffs | 134 + fs/yaffs2/Kconfig | 171 ++ fs/yaffs2/Makefile | 19 + fs/yaffs2/yaffs_allocator.c | 356 +++ @@ -52,9 +50,7 @@ Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> fs/yaffs2/yaffs_yaffs2.c | 1711 +++++++++++ fs/yaffs2/yaffs_yaffs2.h | 38 + fs/yaffs2/yportenv.h | 92 + - 47 files changed, 17522 insertions(+) - create mode 100644 fs/Kconfig.pre.yaffs - create mode 100644 fs/Makefile.pre.yaffs + 45 files changed, 17063 insertions(+) create mode 100644 fs/yaffs2/Kconfig create mode 100644 fs/yaffs2/Makefile create mode 100644 fs/yaffs2/yaffs_allocator.c @@ -100,10 +96,10 @@ Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> create mode 100644 fs/yaffs2/yportenv.h diff --git a/fs/Kconfig b/fs/Kconfig -index 2501e6f1f965..9bdef69b0358 100644 +index 708ba336e689..fe77c48345ac 100644 --- a/fs/Kconfig +++ b/fs/Kconfig -@@ -248,6 +248,7 @@ source "fs/hfsplus/Kconfig" +@@ -249,6 +249,7 @@ source "fs/hfsplus/Kconfig" source "fs/befs/Kconfig" source "fs/bfs/Kconfig" source "fs/efs/Kconfig" @@ -111,486 +107,15 @@ index 2501e6f1f965..9bdef69b0358 100644 source "fs/jffs2/Kconfig" # UBIFS File system configuration source "fs/ubifs/Kconfig" -diff --git a/fs/Kconfig.pre.yaffs b/fs/Kconfig.pre.yaffs -new file mode 100644 -index 000000000000..2501e6f1f965 ---- /dev/null -+++ b/fs/Kconfig.pre.yaffs -@@ -0,0 +1,325 @@ -+# SPDX-License-Identifier: GPL-2.0-only -+# -+# File system configuration -+# -+ -+menu "File systems" -+ -+# Use unaligned word dcache accesses -+config DCACHE_WORD_ACCESS -+ bool -+ -+config VALIDATE_FS_PARSER -+ bool "Validate filesystem parameter description" -+ help -+ Enable this to perform validation of the parameter description for a -+ filesystem when it is registered. -+ -+if BLOCK -+ -+config FS_IOMAP -+ bool -+ -+source "fs/ext2/Kconfig" -+source "fs/ext4/Kconfig" -+source "fs/jbd2/Kconfig" -+ -+config FS_MBCACHE -+# Meta block cache for Extended Attributes (ext2/ext3/ext4) -+ tristate -+ default y if EXT2_FS=y && EXT2_FS_XATTR -+ default y if EXT4_FS=y -+ default m if EXT2_FS_XATTR || EXT4_FS -+ -+source "fs/reiserfs/Kconfig" -+source "fs/jfs/Kconfig" -+ -+source "fs/xfs/Kconfig" -+source "fs/gfs2/Kconfig" -+source "fs/ocfs2/Kconfig" -+source "fs/btrfs/Kconfig" -+source "fs/nilfs2/Kconfig" -+source "fs/f2fs/Kconfig" -+ -+config FS_DAX -+ bool "Direct Access (DAX) support" -+ depends on MMU -+ depends on !(ARM || MIPS || SPARC) -+ select DEV_PAGEMAP_OPS if (ZONE_DEVICE && !FS_DAX_LIMITED) -+ select FS_IOMAP -+ select DAX -+ help -+ Direct Access (DAX) can be used on memory-backed block devices. -+ If the block device supports DAX and the filesystem supports DAX, -+ then you can avoid using the pagecache to buffer I/Os. Turning -+ on this option will compile in support for DAX; you will need to -+ mount the filesystem using the -o dax option. -+ -+ If you do not have a block device that is capable of using this, -+ or if unsure, say N. Saying Y will increase the size of the kernel -+ by about 5kB. -+ -+config FS_DAX_PMD -+ bool -+ default FS_DAX -+ depends on FS_DAX -+ depends on ZONE_DEVICE -+ depends on TRANSPARENT_HUGEPAGE -+ -+# Selected by DAX drivers that do not expect filesystem DAX to support -+# get_user_pages() of DAX mappings. I.e. "limited" indicates no support -+# for fork() of processes with MAP_SHARED mappings or support for -+# direct-I/O to a DAX mapping. -+config FS_DAX_LIMITED -+ bool -+ -+endif # BLOCK -+ -+# Posix ACL utility routines -+# -+# Note: Posix ACLs can be implemented without these helpers. Never use -+# this symbol for ifdefs in core code. -+# -+config FS_POSIX_ACL -+ def_bool n -+ -+config EXPORTFS -+ tristate -+ -+config EXPORTFS_BLOCK_OPS -+ bool "Enable filesystem export operations for block IO" -+ help -+ This option enables the export operations for a filesystem to support -+ external block IO. -+ -+config FILE_LOCKING -+ bool "Enable POSIX file locking API" if EXPERT -+ default y -+ help -+ This option enables standard file locking support, required -+ for filesystems like NFS and for the flock() system -+ call. Disabling this option saves about 11k. -+ -+config MANDATORY_FILE_LOCKING -+ bool "Enable Mandatory file locking" -+ depends on FILE_LOCKING -+ default y -+ help -+ This option enables files appropriately marked files on appropriely -+ mounted filesystems to support mandatory locking. -+ -+ To the best of my knowledge this is dead code that no one cares about. -+ -+source "fs/crypto/Kconfig" -+ -+source "fs/verity/Kconfig" -+ -+source "fs/notify/Kconfig" -+ -+source "fs/quota/Kconfig" -+ -+source "fs/autofs/Kconfig" -+source "fs/fuse/Kconfig" -+source "fs/overlayfs/Kconfig" -+ -+menu "Caches" -+ -+source "fs/fscache/Kconfig" -+source "fs/cachefiles/Kconfig" -+ -+endmenu -+ -+if BLOCK -+menu "CD-ROM/DVD Filesystems" -+ -+source "fs/isofs/Kconfig" -+source "fs/udf/Kconfig" -+ -+endmenu -+endif # BLOCK -+ -+if BLOCK -+menu "DOS/FAT/NT Filesystems" -+ -+source "fs/fat/Kconfig" -+source "fs/ntfs/Kconfig" -+ -+endmenu -+endif # BLOCK -+ -+menu "Pseudo filesystems" -+ -+source "fs/proc/Kconfig" -+source "fs/kernfs/Kconfig" -+source "fs/sysfs/Kconfig" -+ -+config TMPFS -+ bool "Tmpfs virtual memory file system support (former shm fs)" -+ depends on SHMEM -+ help -+ Tmpfs is a file system which keeps all files in virtual memory. -+ -+ Everything in tmpfs is temporary in the sense that no files will be -+ created on your hard drive. The files live in memory and swap -+ space. If you unmount a tmpfs instance, everything stored therein is -+ lost. -+ -+ See <file:Documentation/filesystems/tmpfs.txt> for details. -+ -+config TMPFS_POSIX_ACL -+ bool "Tmpfs POSIX Access Control Lists" -+ depends on TMPFS -+ select TMPFS_XATTR -+ select FS_POSIX_ACL -+ help -+ POSIX Access Control Lists (ACLs) support additional access rights -+ for users and groups beyond the standard owner/group/world scheme, -+ and this option selects support for ACLs specifically for tmpfs -+ filesystems. -+ -+ If you've selected TMPFS, it's possible that you'll also need -+ this option as there are a number of Linux distros that require -+ POSIX ACL support under /dev for certain features to work properly. -+ For example, some distros need this feature for ALSA-related /dev -+ files for sound to work properly. In short, if you're not sure, -+ say Y. -+ -+config TMPFS_XATTR -+ bool "Tmpfs extended attributes" -+ depends on TMPFS -+ default n -+ help -+ Extended attributes are name:value pairs associated with inodes by -+ the kernel or by users (see the attr(5) manual page for details). -+ -+ Currently this enables support for the trusted.* and -+ security.* namespaces. -+ -+ You need this for POSIX ACL support on tmpfs. -+ -+ If unsure, say N. -+ -+config HUGETLBFS -+ bool "HugeTLB file system support" -+ depends on X86 || IA64 || SPARC64 || (S390 && 64BIT) || \ -+ SYS_SUPPORTS_HUGETLBFS || BROKEN -+ help -+ hugetlbfs is a filesystem backing for HugeTLB pages, based on -+ ramfs. For architectures that support it, say Y here and read -+ <file:Documentation/admin-guide/mm/hugetlbpage.rst> for details. -+ -+ If unsure, say N. -+ -+config HUGETLB_PAGE -+ def_bool HUGETLBFS -+ -+config MEMFD_CREATE -+ def_bool TMPFS || HUGETLBFS -+ -+config ARCH_HAS_GIGANTIC_PAGE -+ bool -+ -+source "fs/configfs/Kconfig" -+source "fs/efivarfs/Kconfig" -+ -+endmenu -+ -+menuconfig MISC_FILESYSTEMS -+ bool "Miscellaneous filesystems" -+ default y -+ ---help--- -+ Say Y here to get to see options for various miscellaneous -+ filesystems, such as filesystems that came from other -+ operating systems. -+ -+ This option alone does not add any kernel code. -+ -+ If you say N, all options in this submenu will be skipped and -+ disabled; if unsure, say Y here. -+ -+if MISC_FILESYSTEMS -+ -+source "fs/orangefs/Kconfig" -+source "fs/adfs/Kconfig" -+source "fs/affs/Kconfig" -+source "fs/ecryptfs/Kconfig" -+source "fs/hfs/Kconfig" -+source "fs/hfsplus/Kconfig" -+source "fs/befs/Kconfig" -+source "fs/bfs/Kconfig" -+source "fs/efs/Kconfig" -+source "fs/jffs2/Kconfig" -+# UBIFS File system configuration -+source "fs/ubifs/Kconfig" -+source "fs/cramfs/Kconfig" -+source "fs/squashfs/Kconfig" -+source "fs/freevxfs/Kconfig" -+source "fs/minix/Kconfig" -+source "fs/omfs/Kconfig" -+source "fs/hpfs/Kconfig" -+source "fs/qnx4/Kconfig" -+source "fs/qnx6/Kconfig" -+source "fs/romfs/Kconfig" -+source "fs/pstore/Kconfig" -+source "fs/sysv/Kconfig" -+source "fs/ufs/Kconfig" -+source "fs/erofs/Kconfig" -+ -+endif # MISC_FILESYSTEMS -+ -+menuconfig NETWORK_FILESYSTEMS -+ bool "Network File Systems" -+ default y -+ depends on NET -+ ---help--- -+ Say Y here to get to see options for network filesystems and -+ filesystem-related networking code, such as NFS daemon and -+ RPCSEC security modules. -+ -+ This option alone does not add any kernel code. -+ -+ If you say N, all options in this submenu will be skipped and -+ disabled; if unsure, say Y here. -+ -+if NETWORK_FILESYSTEMS -+ -+source "fs/nfs/Kconfig" -+source "fs/nfsd/Kconfig" -+ -+config GRACE_PERIOD -+ tristate -+ -+config LOCKD -+ tristate -+ depends on FILE_LOCKING -+ select GRACE_PERIOD -+ -+config LOCKD_V4 -+ bool -+ depends on NFSD_V3 || NFS_V3 -+ depends on FILE_LOCKING -+ default y -+ -+config NFS_ACL_SUPPORT -+ tristate -+ select FS_POSIX_ACL -+ -+config NFS_COMMON -+ bool -+ depends on NFSD || NFS_FS || LOCKD -+ default y -+ -+source "net/sunrpc/Kconfig" -+source "fs/ceph/Kconfig" -+source "fs/cifs/Kconfig" -+source "fs/coda/Kconfig" -+source "fs/afs/Kconfig" -+source "fs/9p/Kconfig" -+ -+endif # NETWORK_FILESYSTEMS -+ -+source "fs/nls/Kconfig" -+source "fs/dlm/Kconfig" -+source "fs/unicode/Kconfig" -+ -+endmenu diff --git a/fs/Makefile b/fs/Makefile -index 14231b4cf383..6c03b014a129 100644 +index 505e51166973..4b7b6634e2ae 100644 --- a/fs/Makefile +++ b/fs/Makefile -@@ -132,3 +132,4 @@ obj-$(CONFIG_CEPH_FS) += ceph/ - obj-$(CONFIG_PSTORE) += pstore/ - obj-$(CONFIG_EFIVAR_FS) += efivarfs/ +@@ -135,3 +135,4 @@ obj-$(CONFIG_EFIVAR_FS) += efivarfs/ obj-$(CONFIG_EROFS_FS) += erofs/ + obj-$(CONFIG_VBOXSF_FS) += vboxsf/ + obj-$(CONFIG_ZONEFS_FS) += zonefs/ +obj-$(CONFIG_YAFFS_FS) += yaffs2/ -diff --git a/fs/Makefile.pre.yaffs b/fs/Makefile.pre.yaffs -new file mode 100644 -index 000000000000..14231b4cf383 ---- /dev/null -+++ b/fs/Makefile.pre.yaffs -@@ -0,0 +1,134 @@ -+# SPDX-License-Identifier: GPL-2.0 -+# -+# Makefile for the Linux filesystems. -+# -+# 14 Sep 2000, Christoph Hellwig <hch@infradead.org> -+# Rewritten to use lists instead of if-statements. -+# -+ -+obj-y := open.o read_write.o file_table.o super.o \ -+ char_dev.o stat.o exec.o pipe.o namei.o fcntl.o \ -+ ioctl.o readdir.o select.o dcache.o inode.o \ -+ attr.o bad_inode.o file.o filesystems.o namespace.o \ -+ seq_file.o xattr.o libfs.o fs-writeback.o \ -+ pnode.o splice.o sync.o utimes.o d_path.o \ -+ stack.o fs_struct.o statfs.o fs_pin.o nsfs.o \ -+ fs_types.o fs_context.o fs_parser.o fsopen.o -+ -+ifeq ($(CONFIG_BLOCK),y) -+obj-y += buffer.o block_dev.o direct-io.o mpage.o -+else -+obj-y += no-block.o -+endif -+ -+obj-$(CONFIG_PROC_FS) += proc_namespace.o -+ -+obj-y += notify/ -+obj-$(CONFIG_EPOLL) += eventpoll.o -+obj-y += anon_inodes.o -+obj-$(CONFIG_SIGNALFD) += signalfd.o -+obj-$(CONFIG_TIMERFD) += timerfd.o -+obj-$(CONFIG_EVENTFD) += eventfd.o -+obj-$(CONFIG_USERFAULTFD) += userfaultfd.o -+obj-$(CONFIG_AIO) += aio.o -+obj-$(CONFIG_IO_URING) += io_uring.o -+obj-$(CONFIG_FS_DAX) += dax.o -+obj-$(CONFIG_FS_ENCRYPTION) += crypto/ -+obj-$(CONFIG_FS_VERITY) += verity/ -+obj-$(CONFIG_FILE_LOCKING) += locks.o -+obj-$(CONFIG_COMPAT) += compat.o compat_ioctl.o -+obj-$(CONFIG_BINFMT_AOUT) += binfmt_aout.o -+obj-$(CONFIG_BINFMT_EM86) += binfmt_em86.o -+obj-$(CONFIG_BINFMT_MISC) += binfmt_misc.o -+obj-$(CONFIG_BINFMT_SCRIPT) += binfmt_script.o -+obj-$(CONFIG_BINFMT_ELF) += binfmt_elf.o -+obj-$(CONFIG_COMPAT_BINFMT_ELF) += compat_binfmt_elf.o -+obj-$(CONFIG_BINFMT_ELF_FDPIC) += binfmt_elf_fdpic.o -+obj-$(CONFIG_BINFMT_FLAT) += binfmt_flat.o -+ -+obj-$(CONFIG_FS_MBCACHE) += mbcache.o -+obj-$(CONFIG_FS_POSIX_ACL) += posix_acl.o -+obj-$(CONFIG_NFS_COMMON) += nfs_common/ -+obj-$(CONFIG_COREDUMP) += coredump.o -+obj-$(CONFIG_SYSCTL) += drop_caches.o -+ -+obj-$(CONFIG_FHANDLE) += fhandle.o -+obj-y += iomap/ -+ -+obj-y += quota/ -+ -+obj-$(CONFIG_PROC_FS) += proc/ -+obj-$(CONFIG_KERNFS) += kernfs/ -+obj-$(CONFIG_SYSFS) += sysfs/ -+obj-$(CONFIG_CONFIGFS_FS) += configfs/ -+obj-y += devpts/ -+ -+obj-$(CONFIG_PROFILING) += dcookies.o -+obj-$(CONFIG_DLM) += dlm/ -+ -+# Do not add any filesystems before this line -+obj-$(CONFIG_FSCACHE) += fscache/ -+obj-$(CONFIG_REISERFS_FS) += reiserfs/ -+obj-$(CONFIG_EXT4_FS) += ext4/ -+# We place ext4 before ext2 so that clean ext3 root fs's do NOT mount using the -+# ext2 driver, which doesn't know about journalling! Explicitly request ext2 -+# by giving the rootfstype= parameter. -+obj-$(CONFIG_EXT2_FS) += ext2/ -+obj-$(CONFIG_JBD2) += jbd2/ -+obj-$(CONFIG_CRAMFS) += cramfs/ -+obj-$(CONFIG_SQUASHFS) += squashfs/ -+obj-y += ramfs/ -+obj-$(CONFIG_HUGETLBFS) += hugetlbfs/ -+obj-$(CONFIG_CODA_FS) += coda/ -+obj-$(CONFIG_MINIX_FS) += minix/ -+obj-$(CONFIG_FAT_FS) += fat/ -+obj-$(CONFIG_BFS_FS) += bfs/ -+obj-$(CONFIG_ISO9660_FS) += isofs/ -+obj-$(CONFIG_HFSPLUS_FS) += hfsplus/ # Before hfs to find wrapped HFS+ -+obj-$(CONFIG_HFS_FS) += hfs/ -+obj-$(CONFIG_ECRYPT_FS) += ecryptfs/ -+obj-$(CONFIG_VXFS_FS) += freevxfs/ -+obj-$(CONFIG_NFS_FS) += nfs/ -+obj-$(CONFIG_EXPORTFS) += exportfs/ -+obj-$(CONFIG_NFSD) += nfsd/ -+obj-$(CONFIG_LOCKD) += lockd/ -+obj-$(CONFIG_NLS) += nls/ -+obj-$(CONFIG_UNICODE) += unicode/ -+obj-$(CONFIG_SYSV_FS) += sysv/ -+obj-$(CONFIG_CIFS) += cifs/ -+obj-$(CONFIG_HPFS_FS) += hpfs/ -+obj-$(CONFIG_NTFS_FS) += ntfs/ -+obj-$(CONFIG_UFS_FS) += ufs/ -+obj-$(CONFIG_EFS_FS) += efs/ -+obj-$(CONFIG_JFFS2_FS) += jffs2/ -+obj-$(CONFIG_UBIFS_FS) += ubifs/ -+obj-$(CONFIG_AFFS_FS) += affs/ -+obj-$(CONFIG_ROMFS_FS) += romfs/ -+obj-$(CONFIG_QNX4FS_FS) += qnx4/ -+obj-$(CONFIG_QNX6FS_FS) += qnx6/ -+obj-$(CONFIG_AUTOFS_FS) += autofs/ -+obj-$(CONFIG_ADFS_FS) += adfs/ -+obj-$(CONFIG_FUSE_FS) += fuse/ -+obj-$(CONFIG_OVERLAY_FS) += overlayfs/ -+obj-$(CONFIG_ORANGEFS_FS) += orangefs/ -+obj-$(CONFIG_UDF_FS) += udf/ -+obj-$(CONFIG_SUN_OPENPROMFS) += openpromfs/ -+obj-$(CONFIG_OMFS_FS) += omfs/ -+obj-$(CONFIG_JFS_FS) += jfs/ -+obj-$(CONFIG_XFS_FS) += xfs/ -+obj-$(CONFIG_9P_FS) += 9p/ -+obj-$(CONFIG_AFS_FS) += afs/ -+obj-$(CONFIG_NILFS2_FS) += nilfs2/ -+obj-$(CONFIG_BEFS_FS) += befs/ -+obj-$(CONFIG_HOSTFS) += hostfs/ -+obj-$(CONFIG_CACHEFILES) += cachefiles/ -+obj-$(CONFIG_DEBUG_FS) += debugfs/ -+obj-$(CONFIG_TRACING) += tracefs/ -+obj-$(CONFIG_OCFS2_FS) += ocfs2/ -+obj-$(CONFIG_BTRFS_FS) += btrfs/ -+obj-$(CONFIG_GFS2_FS) += gfs2/ -+obj-$(CONFIG_F2FS_FS) += f2fs/ -+obj-$(CONFIG_CEPH_FS) += ceph/ -+obj-$(CONFIG_PSTORE) += pstore/ -+obj-$(CONFIG_EFIVAR_FS) += efivarfs/ -+obj-$(CONFIG_EROFS_FS) += erofs/ diff --git a/fs/yaffs2/Kconfig b/fs/yaffs2/Kconfig new file mode 100644 index 000000000000..408570fc7a5e |