]> git-server-git.apps.pok.os.sepia.ceph.com Git - xfstests-dev.git/commit
xfstests 243: Test to ensure that the EOFBLOCK_FL gets set/unset correctly.
authorAkshay Lal <alal@google.com>
Wed, 8 Sep 2010 18:51:33 +0000 (13:51 -0500)
committerEric Sandeen <sandeen@redhat.com>
Wed, 8 Sep 2010 18:51:33 +0000 (13:51 -0500)
commit9e75fba07df60ce4f6cb5e62f76f41be4db42fa1
tree35bdffb804c8c46b9b44d73c838e977bccff2008
parent10835986bfbc72f22da8cbdc21c9f11e744ae1bb
xfstests 243: Test to ensure that the EOFBLOCK_FL gets set/unset correctly.

As found by Theodore Ts'o:
If a 128K file is falloc'ed using the KEEP_SIZE flag, and then
write exactly 128K, the EOFBLOCK_FL doesn't get cleared correctly.
This is bad since it forces e2fsck to complain about that inode.
If you have a large number of inodes that are written with fallocate
using KEEP_SIZE, and then fill them up to their expected size,
e2fsck will potentially complain about a _huge_ number of inodes.
This would also cause a huge increase in the time taken by e2fsck
to complete its check.

Test scenarios covered:
1. Fallocating X bytes and writing Y (Y<X) (buffered and direct io)
2. Fallocating X bytes and writing Y (Y=X) (buffered and direct io)
3. Fallocating X bytes and writing Y (Y>X) (buffered and direct io)

These test cases exercise the normal and edge case conditions using
falloc (and KEEP_SIZE).

Ref: http://thread.gmane.org/gmane.comp.file-systems.ext4/20682

Signed-off-by: Akshay Lal <alal@google.com>
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
243 [new file with mode: 0755]
243.out [new file with mode: 0644]
group