Linux File System Verification

Linux File System Verification project provides exhaustive test suites for Linux file system drivers. They contain a number of user space tests checking behavior of all file system interfaces exported to user space under various mkfs and mount options. The tests are augmented with kernel space helpers that enable additional test situations including but not limited to faults of memory allocation requests, bio layer, etc.

The unique feature of the test suites is a systematic approach to simulate faults dedicated to the file system driver under test. That means it does not introduce faults into requests coming from other modules and it implements systematic iteration of fault situations versus a typical random approach.

At this point Linux File System Verification covers the following file system drivers: ext4, xfs, btrfs, f2fs, UbiFS, jffs2, jfs.

Problems in Linux file system implementations already found by the project are as follows.

No.TypeBriefAdded onAcceptedStatus
F0011 Crash ext4: When mounted with backup superblock online resize leads to BUG_ON or causes filesystem corruption 2014-12-27 http://www.spinics.net/lists/linux-ext4/msg46743.html
commit
Fixed in kernel 3.19-rc4
F0010 Crash f2fs: Possible use-after-free when umount filesystem 2014-07-25 https://lkml.org/lkml/2014/7/21/198
commit
Fixed in kernel 3.17-rc1
F0009 Crash ext4: Destruction of ext4_groupinfo_caches during one mount causes BUG_ON for other mounted ext4 filesystems 2014-05-12 https://lkml.org/lkml/2014/5/12/147
commit
Fixed in kernel 3.16-rc1
F0008 Crash f2fs: BUG_ON() is triggered in recover_inode_page() when mount valid f2fs filesystem 2014-04-18 https://lkml.org/lkml/2014/4/14/189
commit
Fixed in kernel 3.17-rc1
F0007 Crash f2fs: f2fs unmount hangs if f2fs_init_acl() fails during mkdir syscall 2014-02-17 https://lkml.org/lkml/2014/2/6/18
commit
Fixed in kernel 3.15-rc1
F0006 Deadlock f2fs: a deadlock in mkdir if ACL is enabled 2013-10-28 https://lkml.org/lkml/2013/10/26/163
commit
Fixed in kernel 3.12-rc3
F0005 Crash ext4: system hangs after failure in ext4_mb_new_preallocation() 2013-07-01 https://lkml.org/lkml/2013/5/5/64
commit
Fixed in kernel 3.10-rc3
F0004 Deadlock ext4: deadlocks after allocation failure in ext4_init_io_end() 2013-06-04 https://lkml.org/lkml/2013/5/13/426
commit
Fixed in kernel 3.10-rc3
F0003 Crash jfs: Several bugs in jfs_freeze() and jfs_unfreeze() 2013-05-24 https://lkml.org/lkml/2013/5/24/76
commit
Fixed in kernel 3.10-rc3
F0002 Crash ext4: NULL dereference in ext4_calculate_overhead() 2012-11-28 https://lkml.org/lkml/2012/11/28/354
commit
Fixed in kernel 3.8-rc1
F0001 Crash ext4: NULL pointer dereference in mount_fs() because of ext4_fill_super() wrongly reports success 2012-11-08 https://bugzilla.kernel.org/show_bug.cgi?id=48431
commit
Fixed in kernel 3.8-rc1

Click on a problem number for detailed description. Click on a column header to change the sorting order.