[f2fs] Add a unit test for CheckpointTest.Version
Test: fx test f2fs-unittest fs-tests large-fs-tests
Change-Id: I6aa6e8a3f4d2b399d1eee5d47a7d21dd7483853d
Reviewed-on: https://fuchsia-review.googlesource.com/c/third_party/f2fs/+/546761
Reviewed-by: Brett Wilson <brettw@google.com>
3 files changed
tree: 1a59da49c029c1a8831f08edd7ccba1910f74498
- patches/
- test/
- test_files/
- third_party/
- tools/
- AUTHORS
- bcache.cc
- bcache.h
- BUILD.gn
- checkpoint.cc
- CONTRIBUTING.md
- data.cc
- dir.cc
- dir.h
- dir_hash.cc
- f2fs.cc
- f2fs.h
- f2fs_internal.h
- f2fs_layout.h
- f2fs_lib.h
- f2fs_types.h
- file.cc
- file.h
- gc.cc
- LICENSE
- mkfs.cc
- mkfs.h
- mount.cc
- mount.h
- namei.cc
- namestring.h
- node.cc
- node.h
- PATENTS
- README.md
- recovery.cc
- segment.cc
- segment.h
- super.cc
- vnode.cc
- vnode.h
README.md
What is F2FS?
F2FS is the most commonly used log-structured file system in Linux. It supports flash-friendly features such as adaptive logging, multi-head logging, fsync acceleration, and node address translation. For more information see: https://www.usenix.org/conference/fast15/technical-sessions/presentation/lee
Major Release
1st release (Apr-06-2021)
- Features: mkfs, mount/umount, read, write, rmdir, mkdir, rename, fsync, lseek, link, unlink
- Remarks
- Fuchsia base code ; Thu Mar 11 08:53:24 2021 Prashanth Swaminathan,76a08ad1474 [speak] Migrate to new component templates
- There is no cache. Every request is handled as a synchronous operation.
- fsync() triggers checkpointing
- lock granularity: file operation
- LFS is used for block allocation by default, and IPU is forced when the number of free sections is below 50%.
- no background/foreground gc
- disable the roll-forward recovery
- 6 active logs
- disable the ext-identify feature
- block allocation: LFS, IPU
- fsck do nothing, but it returns true
- no discard
2nd release (May-28-2021)
- Features: truncate, ssr, fsync, recovery
- Remarks
- Fuchsia base code ; Thu May 20 07:25:45 2021 Yilong Li, 02c0dfff0fdb
- support the roll-forward recovery and file level fsync()
- block allocation: LFS, IPU, SSR
- truncate
3rd release (June-25-2021)
- Features: fsck, mount option, mkfs option
- Remarts
- fsck (base: bbf6e62)
- support the ext-identify feature
- support discard
4th release (July-30-2021 ~)
- Testability
- Features: buffered IO, gc (if writable PagedVfs is available)
- Remarks
- background/foreground gc
- caching node/meta blocks
- read ahead
- Page level locking
- buffered IO
- mmap
- IPU can be disabled.
- support fvm
- xattr
How to build
$ fx set core.x64 --with-base //bundles:tools --with-base //bundles:tests --with-base third_party/f2fs $ fx emu -N --headless (see third_party/f2fs/test_files/README.md for test)