[PATCH] generic/35[67]: disable swapfile tests on Btrfs

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



From: Omar Sandoval <osandov@xxxxxx>

Btrfs doesn't support swapfiles (yet?), so generic/356 fails
erroneously, and generic/357 only passes by accident. Let's add a
_require_scratch_swapfile helper and add it to these tests.

Signed-off-by: Omar Sandoval <osandov@xxxxxx>
---
I have some code enabling swapfiles for Btrfs [1], but there's some ABBA
deadlock issues with i_rwsem and mmap_sem on swap-over-NFS that I
haven't had time to sort out. In the meantime, let's just skip these
tests.

1: https://github.com/osandov/linux/tree/btrfs-swap

 common/rc         | 22 ++++++++++++++++++++++
 tests/generic/356 |  1 +
 tests/generic/357 |  1 +
 3 files changed, 24 insertions(+)

diff --git a/common/rc b/common/rc
index 2719b23..d863e56 100644
--- a/common/rc
+++ b/common/rc
@@ -1790,6 +1790,28 @@ _require_odirect()
 	rm -f $testfile 2>&1 > /dev/null
 }
 
+# Check that the filesystem supports swapfiles
+_require_scratch_swapfile()
+{
+	_require_scratch
+
+	_scratch_mkfs >/dev/null
+	_scratch_mount
+
+	# Minimum size for mkswap is 10 pages
+	local size=$(($(get_page_size) * 10))
+
+	_pwrite_byte 0x61 0 "$size" "$SCRATCH_MNT/swap" >/dev/null 2>&1
+	mkswap "$SCRATCH_MNT/swap" >/dev/null 2>&1
+	if ! swapon "$SCRATCH_MNT/swap" >/dev/null 2>&1; then
+		_scratch_unmount
+		_notrun "swapfiles are not supported"
+	fi
+
+	swapoff "$SCRATCH_MNT/swap" >/dev/null 2>&1
+	_scratch_unmount
+}
+
 # Check that a fs has enough free space (in 1024b blocks)
 #
 _require_fs_space()
diff --git a/tests/generic/356 b/tests/generic/356
index 6bb90c0..51eeb65 100755
--- a/tests/generic/356
+++ b/tests/generic/356
@@ -44,6 +44,7 @@ _cleanup()
 
 # real QA test starts here
 _supported_os Linux
+_require_scratch_swapfile
 _require_scratch_reflink
 _require_cp_reflink
 
diff --git a/tests/generic/357 b/tests/generic/357
index 439b314..0dd0c10 100755
--- a/tests/generic/357
+++ b/tests/generic/357
@@ -44,6 +44,7 @@ _cleanup()
 
 # real QA test starts here
 _supported_os Linux
+_require_scratch_swapfile
 _require_scratch_reflink
 _require_cp_reflink
 
-- 
2.10.2

--
To unsubscribe from this list: send the line "unsubscribe fstests" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux