aboutsummaryrefslogtreecommitdiffstats
path: root/features/yaffs2/yaffs2-import-git-revision-b4ce1bb-jan-2020.patch
diff options
context:
space:
mode:
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.patch491
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