aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2011-07-14 14:07:58 +1000
committerDave Chinner <david@fromorbit.com>2011-07-14 14:07:58 +1000
commitc18bf42de9d5d5fa05025754df1ff63f2147bd12 (patch)
tree67fa8b638bb95552cc9e972ab01a0890c8f21bb5
parent75d2f82138f3da7c537e71241ba9be777b82a427 (diff)
downloadxfstests-dev-c18bf42de9d5d5fa05025754df1ff63f2147bd12.tar.gz
xfstests: fix fsx fpunch test to actually test for fpunch
The operation flags parameter to fallocate is the second parameter, not the last. Hence the fpunch test is actually testing for falloc support, not fpunch. Somebody needs a brown paper bag. Also, add a ftruncate call whenthe fpunch succeeds just in case the file was not already zero sized. Failing to ensure we start with a zero length file can cause read ops to fail size checks if they occur before the file is written to be the main test loop. While there, observe the quiet flag the same as the falloc test does and have them both emit the warning at the same error level. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Alex Elder <aelder@sgi.com>
-rw-r--r--ltp/fsx.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/ltp/fsx.c b/ltp/fsx.c
index 0683853..a37e223 100644
--- a/ltp/fsx.c
+++ b/ltp/fsx.c
@@ -1243,7 +1243,7 @@ test_fallocate()
if (!lite && fallocate_calls) {
if (fallocate(fd, 0, 0, 1) && errno == EOPNOTSUPP) {
if(!quiet)
- prt("fsx: main: filesystem does not support fallocate, disabling\n");
+ warn("main: filesystem does not support fallocate, disabling\n");
fallocate_calls = 0;
} else {
ftruncate(fd, 0);
@@ -1260,13 +1260,13 @@ test_punch_hole()
{
#ifdef FALLOC_FL_PUNCH_HOLE
if (!lite && punch_hole_calls) {
- if (fallocate(fd, 0, 0,
- FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE) &&
- errno == EOPNOTSUPP) {
-
- warn("main: filesystem does not support fallocate punch hole, disabling");
+ if (fallocate(fd, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE,
+ 0, 1) && errno == EOPNOTSUPP) {
+ if(!quiet)
+ warn("main: filesystem does not support fallocate punch hole, disabling");
punch_hole_calls = 0;
- }
+ } else
+ ftruncate(fd, 0);
}
#else /* ! PUNCH HOLE */
punch_hole_calls = 0;