xfstests: use xfs_io fiemap instead of filefrag V2

Btrfs has always failed shared/218 because of the way we allocate extents on
disk.  The last part of 218 writes contiguously holey from the start of the file
forward, which for btrfs means we get 16 extents but they are physically
contigous.  filefrag -v shows all 16 extents, but prints out that there is 1
extent, because they are physically contiguous.  This isn't quite right and
makes the test fail.  So instead of using filefrag use xfs_io -c fiemap which
will print the whole map and then get the count from there.  With this patch
btrfs now passes the test, I also verified that ext4 and xfs still pass this
test.  Thanks,

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
xfstests generic/313: test ctime and mtime are updated on truncate and ftruncate

Regression test for commit:
3972f26 btrfs: update timestamps on truncate()

Reviewed-by: Ben Myers <bpm@sgi.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
xfstests: fix README, FSTYP options

commit cbcc88fb changed test selection to use shell globs, so fixup the
examples given in the README file.

remove options for FSTYP other than NFS since the FSTYP will be automatically
detected (on Linux) from $TEST_DEV.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Reviewed-by: Ben Myers <bpm@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
xfstest: ensure small symlink is removed

Tests the XFS symlinks that are small enough to be in the
inode, but were move to a remote symlink due to an extended
attribute were correctly removed.

Signed-off-by: Mark Tinguely <tinguely@sgi.com>
Reviewed-by: Ben Myers <bpm@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
xfstests: generic/314, test sgid inheritance on subdirs

Tests if subdirectories created on the filesystem will properly inherit sgid bit
when this is set on the parent directory, once the process has the properly
permissions to create a subdirectory, this, should inherit parent's sgid bit if
this is set and irix_sgid_inherit sysctl is disabled.

V2: add missing source of "attr" file for _require_acls

V3: use _ls_l to filter out the selinux "."
    renumber to 314 to make the merge easier

V4: fix 314.out to the correct output

Thanks to Sandeen who have written this patch

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Ben Myers <bpm@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
xfstests: exit out if _scratch_mount fails

I test some of the different mkfs options for btrfs, one set doesn't work
properly with small file systems, so the fs won't mount.  This is fine from a
btrfs point of view, but tests that fail to mount the scratch fs will run
anyway, so if it's a "fill the fs" sort of test this will wreak havoc.  To fix
this just error out of _scratch_mount fails.  Thanks,

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Reviewed-by: Ben Myers <bpm@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
xfstests: skip generic/192 if noatime is set

Test generic/192 fails if noatime is set

generic/192
    -delta1 - access time after sleep in-core: 40
    -delta2 - access time after sleep on-disk: 40
    +delta1 - access time after sleep in-core: 0
    +delta2 - access time after sleep on-disk: 0

but it's pointless to test atime effects with noatime.

Signed-off-by: David Sterba <dsterba@suse.cz>
Reviewed-by: Ben Myers <bpm@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
xfstests: clean up remake related matters from README

Cleanup 'remake' related matters from the README file as the
remake utility has already been removed by:

commit 609d17c4eb911891fae3c0081c2cd1caa613c0de

	xfstests: remove remake script

Signed-off-by: Jie Liu <jeff.liu@oracle.com>
Reviewed-by: Ben Myers <bpm@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
xfstests: generic/315, verify preallocated disk space is released per truncate

Introduce generic test 315 to verify if the disk space is
released after truncating a preallocated file back to the
old smaller size.  Before Linux-3.10, Btrfs/OCFS2 test
failed in this case.

The test file is fallocated with FALLOC_FL_KEEP_SIZE option.

Signed-off-by: Jie Liu <jeff.liu@oracle.com>
Reviewed-by: Ben Myers <bpm@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
Revert "xfstests: exit out if _scratch_mount fails"

This reverts commit 74bcf51c066e498a147ab5902e377efa59224dd3.

Unfortunately this commit causes dmapi tests to be run on systems which
don't have dmapi installed, so they fail.

Signed-off-by: Ben Myers <bpm@sgi.com>
xfstests: generic/314 filter out total from ls -l output

ls -l will show the nblocks for the directory, and this made it into the golden
output for 314.  The problem is nblocks is 0 for btrfs directories because we're
awesome, which makes us fail this test.  So filter out the "total blah" line of
ls -l so btrfs can pass this test too.  Thanks,

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
xfstests: generic/315: allow a little tolerance for our used check

So df in btrfs is tricky at best, and relying on it for accurate information is
not great, but it's the best way to verify this test.  To get around btrfs being
inconsistent sometimes just use _within_tolerance to check our new df value to
make sure that our truncate did something.  With this patch I no longer see
transient failures of this test.  Thanks,

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Reviewed-by: Jie Liu <jeff.liu@oracle.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
xfstests: Add support for zfs filesystems

Extend the existing xfstests infrastructure so it can be used to
test the zfs filesystems.

If blkid can property identify the device as a zfs member this
will get automatically set.  However, older version of blkid were
not ZFS-aware so it was helpful add the -zfs option to force zfs.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
xfstests 062: Always sort recursive getfattr output

Commit 2fb1c93 introduced a _sort_getfattr_output helper to ensure
the results of getfattr -R are always consistent.  This was done
to make 062 generic between filesystems.  However, it is also
possible that the order will not be deterministic within a single
filesystem (zfs).  To handle this case we pass the results from
_backup through the sort routine.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
xfstests: Add _require_dio() helper

Annotate test cases which require DIO support so they may be
cleanly disabled for filesystem which do not support direct IO.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
xfstest 225: Properly detect missing FIEMAP support

The lack of FIEMAP support was not being properly detected
because the $? value being checked was actually the return
code from tee and not fiemap-tester.  To fix this tee has
been removed and the output redirected directly to the file.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Add basic README.markdown

This is just to get people started, it looks like the full xfstests
documention is also stale and could use an update.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>