Hi

The Flash friendly features of f2fs has motivated me to make use of 
these characteristics as rootfs in my project. Since one of my main 
considerations is the resilience in the face of power failure, I've been 
looking for some techniques to prove this assertion. Finally, I ended up 
finding a wonderful device-mapper target, developed by Josef Bacik who 
is btrfs developer, for this purpose..

As you know, log-writes target logs all bios which are passed to the 
block layer and keeps the order of logging to simulate the file system 
logic of maintaining the consistency. To take advantage of this helpful 
tool to verify the consistency of f2fs file system after power failure, 
I combined xfstests test suite with log-writes. According to the LFS 
based nature of f2fs, I expected that I would never encounter with 
inconsistency problem, but test results shows something else.

To clarify further this notion, this is my test environment:

     - Fedora 24

     - kernel 4.9.8 - f2fs was compiled as module which all features

         - mount options: default + noatime

     - f2fs-tools 1.8.0

     - xfstests  1.1.1 - from https://github.com/jaegeuk/xfstests-f2fs

     - device-mapper 1.02.122

In my test environment, I run each generic test of xfstests on 
log-writes device with newly created f2fs. After that, I replay the log 
after the mkfs one by one and check the consistency of file system with 
fsck.f2fs. In test #009 which is fallocate test with 
FALLOC_FL_ZERO_RANGE mode, after a while, fsck.f2fs complains this:

Info: [/dev/sdc] Disk Model: VMware Virtual S1.0
Info: Segments per section = 1
Info: Sections per zone = 1
Info: sector size = 512
Info: total sectors = 2097152 (1024 MB)
Info: MKFS version
   "Linux version 4.9.8 (rora...@desktopr.example.com) (gcc version 
4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Feb 7 08:24:57 IRST 
2017"
Info: FSCK version
   from "Linux version 4.9.8 (rora...@desktopr.example.com) (gcc version 
4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Feb 7 08:24:57 IRST 
2017"
     to "Linux version 4.9.8 (rora...@desktopr.example.com) (gcc version 
4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Feb 7 08:24:57 IRST 
2017"
Info: superblock features = 0 :
Info: superblock encrypt level = 0, salt = 00000000000000000000000000000000
Info: total FS sectors = 2097152 (1024 MB)
Info: CKPT version = 2a4679e0
Info: checkpoint state = 45 :  compacted_summary unmount

NID[0x4c] is unreachable
NID[0x4d] is unreachable
[FSCK] Unreachable nat entries                        [Fail] [0x2]
[FSCK] SIT valid block bitmap checking                [Ok..]
[FSCK] Hard link checking for regular file            [Ok..] [0x0]
[FSCK] valid_block_count matching with CP             [Ok..] [0x2]
[FSCK] valid_node_count matcing with CP (de lookup)   [Ok..] [0x1]
[FSCK] valid_node_count matcing with CP (nat lookup)  [Fail] [0x3]
[FSCK] valid_inode_count matched with CP              [Ok..] [0x1]
[FSCK] free segment_count matched with CP             [Ok..] [0x1f0]
[FSCK] next block offset is free                      [Ok..]
[FSCK] fixing SIT types
[FSCK] other corrupted bugs                           [Fail]

Do you want to restore lost files into ./lost_found/? [Y/N] Y
  - File name         : 009.48244.2
  - File size         : 20,480 (bytes)
Do you want to fix this partition? [Y/N] Y

The interesting side of this is that when I issue fsck.f2fs with -p 
option, fsck.f2fs doesn't complain !!!

Would you please tell me why fsck.f2fs reports an inconsistency which 
needs to be fixed? Does it violate the crash consistency promise of f2fs?

Moreover, Why is fsck.f2fs silent with -p option? Does it mean whether 
f2fs kernel module finds it not serious?

I really appreciate for your help.

Thanks




------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to