From: Christoph Hellwig <hch@lst.de>
To: guaneryu@gmail.com
Cc: fstests@vger.kernel.org, linux-xfs@vger.kernel.org
Subject: [PATCH 3/5] xfs: don't assume preallocation is always supported on XFS
Date: Sat, 10 Nov 2018 12:51:43 +0100 [thread overview]
Message-ID: <20181110115145.30356-4-hch@lst.de> (raw)
In-Reply-To: <20181110115145.30356-1-hch@lst.de>
The always_cow mode can't usefull preallocate space gіven that it always
has to write out of place, and thus will reject falloc or ioctl calls to
preallocate space in a file. Add explicit checks for preallocation
support in various XFS-specific tests to support this.
---
tests/xfs/009 | 1 +
tests/xfs/072 | 3 +--
tests/xfs/084 | 1 +
tests/xfs/104 | 1 +
tests/xfs/128 | 1 +
tests/xfs/164 | 1 +
tests/xfs/165 | 1 +
tests/xfs/166 | 2 ++
tests/xfs/167 | 1 +
tests/xfs/231 | 1 +
tests/xfs/232 | 1 +
tests/xfs/242 | 1 +
tests/xfs/250 | 1 +
tests/xfs/280 | 1 +
tests/xfs/294 | 2 ++
tests/xfs/312 | 1 +
tests/xfs/313 | 1 +
tests/xfs/316 | 1 +
tests/xfs/324 | 1 +
tests/xfs/326 | 1 +
tests/xfs/328 | 1 +
tests/xfs/330 | 1 +
tests/xfs/444 | 1 +
tests/xfs/445 | 1 +
24 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/tests/xfs/009 b/tests/xfs/009
index 7f95156c..9385d3b9 100755
--- a/tests/xfs/009
+++ b/tests/xfs/009
@@ -48,6 +48,7 @@ _supported_fs xfs
_supported_os Linux
_require_scratch
+_require_xfs_io_command "falloc"
_filesize()
{
diff --git a/tests/xfs/072 b/tests/xfs/072
index 735260b7..f86e4003 100755
--- a/tests/xfs/072
+++ b/tests/xfs/072
@@ -30,9 +30,8 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fs xfs
_supported_os Linux
-[ -n "$XFS_IO_PROG" ] || _notrun "xfs_io executable not found"
-
_require_scratch
+_require_xfs_io_command "falloc"
rm -f $seqres.full
_scratch_unmount >/dev/null 2>&1
diff --git a/tests/xfs/084 b/tests/xfs/084
index 8e9aff3c..fcdfc185 100755
--- a/tests/xfs/084
+++ b/tests/xfs/084
@@ -35,6 +35,7 @@ pgsize=`$here/src/feature -s`
# real QA test starts here
_supported_fs xfs
_supported_os Linux
+_require_xfs_io_command "falloc"
_require_test
echo
diff --git a/tests/xfs/104 b/tests/xfs/104
index 218e2b60..bc38f969 100755
--- a/tests/xfs/104
+++ b/tests/xfs/104
@@ -55,6 +55,7 @@ _stress_scratch()
# real QA test starts here
_supported_fs xfs
_require_scratch
+_require_xfs_io_command "falloc"
rm -f $seqres.full
_scratch_mkfs_xfs | tee -a $seqres.full | _filter_mkfs 2>$tmp.mkfs
diff --git a/tests/xfs/128 b/tests/xfs/128
index 40ea0f04..f1b4fb4f 100755
--- a/tests/xfs/128
+++ b/tests/xfs/128
@@ -32,6 +32,7 @@ _supported_fs xfs
_require_test_lsattr
_require_scratch_reflink
_require_cp_reflink
+_require_xfs_io_command "falloc"
echo "Format and mount"
_scratch_mkfs > $seqres.full 2>&1
diff --git a/tests/xfs/164 b/tests/xfs/164
index fdd9293d..b0ec6df5 100755
--- a/tests/xfs/164
+++ b/tests/xfs/164
@@ -52,6 +52,7 @@ _filter_bmap()
_supported_fs xfs
_supported_os Linux
_require_test
+_require_xfs_io_command "falloc"
testfile=$TEST_DIR/file.$seq
rm -f $seqres.full
diff --git a/tests/xfs/165 b/tests/xfs/165
index 4f6738d4..990d054c 100755
--- a/tests/xfs/165
+++ b/tests/xfs/165
@@ -49,6 +49,7 @@ _filter_bmap()
_supported_fs xfs
_supported_os Linux
_require_test
+_require_xfs_io_command "falloc"
# io tests
testfile=$TEST_DIR/file.$seq
diff --git a/tests/xfs/166 b/tests/xfs/166
index 9814e4a3..8dc7e080 100755
--- a/tests/xfs/166
+++ b/tests/xfs/166
@@ -60,6 +60,8 @@ _supported_fs xfs
_supported_os Linux
_require_scratch
+_require_xfs_io_command "falloc"
+
_scratch_mkfs_xfs >/dev/null 2>&1
_scratch_mount
diff --git a/tests/xfs/167 b/tests/xfs/167
index 40b45e86..015002d4 100755
--- a/tests/xfs/167
+++ b/tests/xfs/167
@@ -41,6 +41,7 @@ _supported_fs xfs
_supported_os Linux
_require_command "$KILLALL_PROG" killall
+_require_xfs_io_command "falloc"
_require_scratch
_scratch_mkfs_xfs >/dev/null 2>&1
diff --git a/tests/xfs/231 b/tests/xfs/231
index 865c0331..12fdc490 100755
--- a/tests/xfs/231
+++ b/tests/xfs/231
@@ -38,6 +38,7 @@ _supported_fs xfs
_require_scratch_reflink
_require_cp_reflink
_require_xfs_io_command "cowextsize"
+_require_xfs_io_command "falloc"
_require_xfs_io_command "fiemap"
old_cow_lifetime=$(cat /proc/sys/fs/xfs/speculative_cow_prealloc_lifetime)
diff --git a/tests/xfs/232 b/tests/xfs/232
index 3a88cc33..e768fa27 100755
--- a/tests/xfs/232
+++ b/tests/xfs/232
@@ -39,6 +39,7 @@ _supported_fs xfs
_require_xfs_io_command "cowextsize"
_require_scratch_reflink
_require_cp_reflink
+_require_xfs_io_command "falloc"
_require_xfs_io_command "fiemap"
old_cow_lifetime=$(cat /proc/sys/fs/xfs/speculative_cow_prealloc_lifetime)
diff --git a/tests/xfs/242 b/tests/xfs/242
index 9ae1aebd..5ce2c6f0 100755
--- a/tests/xfs/242
+++ b/tests/xfs/242
@@ -31,6 +31,7 @@ _supported_fs xfs
_supported_os Linux
_require_test
+_require_xfs_io_command "falloc"
_require_xfs_io_command "zero"
testfile=$TEST_DIR/242.$$
diff --git a/tests/xfs/250 b/tests/xfs/250
index f8b800e4..1f4d818e 100755
--- a/tests/xfs/250
+++ b/tests/xfs/250
@@ -32,6 +32,7 @@ _supported_fs xfs
_supported_os Linux
_require_test
_require_loop
+_require_xfs_io_command "falloc"
LOOP_DEV=$TEST_DIR/$seq.fs
LOOP_MNT=$TEST_DIR/$seq.mnt
diff --git a/tests/xfs/280 b/tests/xfs/280
index 172eee21..76287c85 100755
--- a/tests/xfs/280
+++ b/tests/xfs/280
@@ -31,6 +31,7 @@ _supported_os Linux
_supported_fs xfs
_require_scratch_reflink
_require_xfs_io_command "bmap"
+_require_xfs_io_command "falloc"
echo "Format and mount"
_scratch_mkfs > $seqres.full 2>&1
diff --git a/tests/xfs/294 b/tests/xfs/294
index 4c919432..bce4d07b 100755
--- a/tests/xfs/294
+++ b/tests/xfs/294
@@ -42,6 +42,8 @@ _supported_fs xfs
_supported_os Linux
_require_scratch
_require_test_program "punch-alternating"
+_require_xfs_io_command "falloc"
+_require_xfs_io_command "fpunch"
# We want to mkfs with a very specific geometry
MKFS_OPTIONS=""
diff --git a/tests/xfs/312 b/tests/xfs/312
index cdec9233..fa05754e 100755
--- a/tests/xfs/312
+++ b/tests/xfs/312
@@ -34,6 +34,7 @@ _supported_os Linux
_supported_fs xfs
_require_cp_reflink
_require_scratch_reflink
+_require_xfs_io_command "fpunch"
_require_xfs_io_error_injection "bmap_finish_one"
rm -f $seqres.full
diff --git a/tests/xfs/313 b/tests/xfs/313
index 47ef7ec8..97c24f0a 100755
--- a/tests/xfs/313
+++ b/tests/xfs/313
@@ -34,6 +34,7 @@ _supported_os Linux
_supported_fs xfs
_require_cp_reflink
_require_scratch_reflink
+_require_xfs_io_command "fpunch"
_require_xfs_io_error_injection "refcount_finish_one"
rm -f $seqres.full
diff --git a/tests/xfs/316 b/tests/xfs/316
index d0cd1e2f..063f0e43 100755
--- a/tests/xfs/316
+++ b/tests/xfs/316
@@ -35,6 +35,7 @@ _supported_fs xfs
_require_cp_reflink
_require_scratch_reflink
_require_error_injection
+_require_xfs_io_command "fpunch"
_require_xfs_io_error_injection "refcount_continue_update"
rm -f $seqres.full
diff --git a/tests/xfs/324 b/tests/xfs/324
index a1be3318..e8ed2fc5 100755
--- a/tests/xfs/324
+++ b/tests/xfs/324
@@ -35,6 +35,7 @@ _supported_fs xfs
_require_cp_reflink
_require_scratch_reflink
_require_error_injection
+_require_xfs_io_command "fpunch"
_require_xfs_io_error_injection "refcount_continue_update"
rm -f $seqres.full
diff --git a/tests/xfs/326 b/tests/xfs/326
index b6e01862..bb7e5590 100755
--- a/tests/xfs/326
+++ b/tests/xfs/326
@@ -37,6 +37,7 @@ _supported_fs xfs
_require_cp_reflink
_require_scratch_reflink
_require_xfs_io_command "cowextsize"
+_require_xfs_io_command "fpunch"
_require_xfs_io_error_injection "refcount_finish_one"
rm -f $seqres.full
diff --git a/tests/xfs/328 b/tests/xfs/328
index ab8af12f..55fe3ec9 100755
--- a/tests/xfs/328
+++ b/tests/xfs/328
@@ -33,6 +33,7 @@ _supported_fs xfs
_require_scratch_reflink
_require_cp_reflink
_require_test_program "punch-alternating"
+_require_xfs_io_command "falloc" # used in FSR
_require_command "$XFS_FSR_PROG" "xfs_fsr"
rm -f "$seqres.full"
diff --git a/tests/xfs/330 b/tests/xfs/330
index 3682525d..66a9b6e2 100755
--- a/tests/xfs/330
+++ b/tests/xfs/330
@@ -33,6 +33,7 @@ _supported_os Linux
_supported_fs xfs
_require_scratch_reflink
_require_cp_reflink
+_require_xfs_io_command "falloc" # used in FSR
_require_command "$XFS_FSR_PROG" "xfs_fsr"
_require_quota
_require_nobody
diff --git a/tests/xfs/444 b/tests/xfs/444
index f1c0ed03..7a33b9e9 100755
--- a/tests/xfs/444
+++ b/tests/xfs/444
@@ -38,6 +38,7 @@ _supported_os Linux
_require_check_dmesg
_require_scratch
_require_test_program "punch-alternating"
+_require_xfs_io_command "falloc"
_require_xfs_db_write_array
# This is only a v5 filesystem problem
diff --git a/tests/xfs/445 b/tests/xfs/445
index 2d205a40..800d5d28 100755
--- a/tests/xfs/445
+++ b/tests/xfs/445
@@ -53,6 +53,7 @@ drop_caches()
_supported_fs generic
_supported_os Linux
_require_scratch_size $((2*1024*1024)) # kb
+_require_xfs_io_command "falloc"
# check for filestreams
_check_filestreams_support || _notrun "filestreams not available"
--
2.19.1
next prev parent reply other threads:[~2018-11-10 21:36 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-10 11:51 fstests: various fixups uncovered by the always_cow mode Christoph Hellwig
2018-11-10 11:51 ` [PATCH 1/5] generic: move prealloc-enabled fsx to separate tests Christoph Hellwig
2018-11-18 13:44 ` Eryu Guan
2018-11-19 14:20 ` Christoph Hellwig
2018-11-10 11:51 ` [PATCH 2/5] generic: don't assume preallocation is supported when reflinks are supported Christoph Hellwig
2018-11-10 11:51 ` Christoph Hellwig [this message]
2018-11-10 11:51 ` [PATCH 4/5] xfs: xfs_fsr requires working preallocation support Christoph Hellwig
2018-11-10 11:51 ` [PATCH 5/5] xfs/420: only check the extent layout after syncing Christoph Hellwig
2018-11-18 13:49 ` Eryu Guan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181110115145.30356-4-hch@lst.de \
--to=hch@lst.de \
--cc=fstests@vger.kernel.org \
--cc=guaneryu@gmail.com \
--cc=linux-xfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).