summaryrefslogtreecommitdiffstats
path: root/cpukit/libfs/src/jffs2/src/jffs2_fs_sb.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* cpukit/jffs2: Handle used empty file systemKinsey Moore2024-02-261-0/+3
| | | | | | | | | | | | | | | | | On JFFS2 file systems on NOR flash or dataflash that does not have spare area for metadata and thus does not invoke delayed writes, it is possible to put the file system into a state where all blocks have been written to and all files have been deleted from the filesystem. There is a bug in the JFFS2 file system scan routine that detects this situation as a corrupted file system since the scan routine relies on "used" space to discriminate a valid file system when there are blocks that need to be erased. The correct fix would require a partial rewrite of the scan routine, so instead this patch tracks the space marked as obsolete along with space at the end of each block that is otherwise too small to contain a JFFS2 node so that it can me compared with the dirty space. Corrupted data (or otherwise non-JFFS2 blocks) will still cause this check to fail as corrupted data isn't recognized as obsoleted (deleted) nodes.
* cpukit/jffs2: Add support for NAND under JFFS2Kinsey Moore2023-03-151-0/+2
| | | | | | | | | This adds write buffer and bad block support required for JFFS2 operation on NAND devices. This also adds the minor modifications necessary for RTEMS support in the Linux header stubs and in wbuf.c. Memory and NOR backed applications should experience no difference in operation since they do not expose the callbacks required for write buffer support.
* jffs2: Allow setting rp_size to zero during remountinglizhe2023-01-121-0/+1
| | | | | | | | | | | | | | Set rp_size to zero will be ignore during remounting. The method to identify whether we input a remounting option of rp_size is to check if the rp_size input is zero. It can not work well if we pass "rp_size=0". This patch add a bool variable "set_rp_size" to fix this problem. Reported-by: Jubin Zhong <zhongjubin@huawei.com> Signed-off-by: lizhe <lizhe67@huawei.com> Signed-off-by: Richard Weinberger <richard@nod.at>
* jffs2: Improve post-mount CRC scan efficiencyDavid Woodhouse2018-07-161-1/+1
| | | | | | | | | | | | | | | | | We need to finish doing the CRC checks before we can allow writes to happen, and we currently process the inodes in order. This means a call to jffs2_get_ino_cache() for each possible inode# up to c->highest_ino. There may be a lot of lookups which fail, if the inode# space is used sparsely. And the inode# space is *often* used sparsely, if a file system contains a lot of stuff that was put there in the original image, followed by lots of creation and deletion of new files. Instead of processing them numerically with a lookup each time, just walk the hash buckets instead. [fix locking typo reported by Dan Carpenter] Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* kill wbuf_queued/wbuf_dwork_lockAl Viro2018-07-161-2/+0
| | | | | | | | | | | | | schedule_delayed_work() happening when the work is already pending is a cheap no-op. Don't bother with ->wbuf_queued logics - it's both broken (cancelling ->wbuf_dwork leaves it set, as spotted by Jeff Harris) and pointless. It's cheaper to let schedule_delayed_work() handle that case. Reported-by: Jeff Harris <jefftharris@gmail.com> Tested-by: Jeff Harris <jefftharris@gmail.com> Cc: stable@vger.kernel.org Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* JFFS2: Import from LinuxSebastian Huber2013-09-191-0/+164
Import of Journalling Flash File System, Version 2 from Linux 3.11. This part of the Linux kernel is under a separate license which is similar to the RTEMS license. The file "cpukit/libfs/src/jffs2/include/linux/jffs2.h" is a copy of "linux-3.11/include/uapi/linux/jffs2.h". The file "LICENSE.JFFS2" is a copy of "linux-3.11/fs/jffs2/LICENCE". The files "linux-3.11/fs/jffs2/LICENCE", "linux-3.11/fs/jffs2/acl.h", "linux-3.11/fs/jffs2/build.c", "linux-3.11/fs/jffs2/compr.c", "linux-3.11/fs/jffs2/compr.h", "linux-3.11/fs/jffs2/compr_rtime.c", "linux-3.11/fs/jffs2/compr_rubin.c", "linux-3.11/fs/jffs2/compr_zlib.c", "linux-3.11/fs/jffs2/debug.c", "linux-3.11/fs/jffs2/debug.h", "linux-3.11/fs/jffs2/erase.c", "linux-3.11/fs/jffs2/gc.c", "linux-3.11/fs/jffs2/jffs2_fs_i.h", "linux-3.11/fs/jffs2/jffs2_fs_sb.h", "linux-3.11/fs/jffs2/nodelist.c", "linux-3.11/fs/jffs2/nodelist.h", "linux-3.11/fs/jffs2/nodemgmt.c", "linux-3.11/fs/jffs2/read.c", "linux-3.11/fs/jffs2/readinode.c", "linux-3.11/fs/jffs2/scan.c", "linux-3.11/fs/jffs2/summary.h", "linux-3.11/fs/jffs2/write.c", and "linux-3.11/fs/jffs2/xattr.h" are copied to "cpukit/libfs/src/jffs2/src".