FSTests Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH] btrfs: add a test for umount racing mount
@ 2020-07-10  0:55 Boris Burkov
  2020-07-10 14:35 ` Josef Bacik
  0 siblings, 1 reply; 11+ messages in thread
From: Boris Burkov @ 2020-07-10  0:55 UTC (permalink / raw)
  To: fstests; +Cc: linux-btrfs

Test if dirtying many inodes, which delays the umount in `evict_inodes`,
then umounting and quickly mounting again causes the mount to fail.

This race is fixed by the patch:
"btrfs: fix mount failure caused by race with umount"

Signed-off-by: Boris Burkov <boris@bur.io>
---
 tests/btrfs/215     | 52 +++++++++++++++++++++++++++++++++++++++++++++
 tests/btrfs/215.out |  2 ++
 tests/btrfs/group   |  1 +
 3 files changed, 55 insertions(+)
 create mode 100755 tests/btrfs/215
 create mode 100644 tests/btrfs/215.out

diff --git a/tests/btrfs/215 b/tests/btrfs/215
new file mode 100755
index 00000000..b142c2d6
--- /dev/null
+++ b/tests/btrfs/215
@@ -0,0 +1,52 @@
+#! /bin/bash
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (c) 2020 YOUR NAME HERE.  All Rights Reserved.
+#
+# FS QA Test 215
+#
+# Evicting dirty inodes can take a long time during umount.
+# Check that a new mount racing with such a delayed umount succeeds.
+#
+seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1	# failure is the default!
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+	cd /
+	rm -f $tmp.*
+}
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+
+# remove previous $seqres.full before test
+rm -f $seqres.full
+
+# real QA test starts here
+
+# Modify as appropriate.
+_supported_fs generic
+_supported_os Linux
+_require_test
+
+_scratch_mkfs > /dev/null 2>&1
+_scratch_mount
+for i in $(seq 0 500)
+	do
+		  dd if=/dev/zero of="$SCRATCH_MNT/$i" bs=1M count=1 > /dev/null 2>&1
+		  done
+		  _scratch_unmount&
+		  _scratch_mount
+
+echo "Silence is golden"
+
+# success, all done
+status=0
+exit
diff --git a/tests/btrfs/215.out b/tests/btrfs/215.out
new file mode 100644
index 00000000..0a11773b
--- /dev/null
+++ b/tests/btrfs/215.out
@@ -0,0 +1,2 @@
+QA output created by 215
+Silence is golden
diff --git a/tests/btrfs/group b/tests/btrfs/group
index 505665b5..dda0763e 100644
--- a/tests/btrfs/group
+++ b/tests/btrfs/group
@@ -217,3 +217,4 @@
 212 auto balance dangerous
 213 auto balance dangerous
 214 auto quick send snapshot
+215 auto quick
-- 
2.24.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, back to index

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-10  0:55 [PATCH] btrfs: add a test for umount racing mount Boris Burkov
2020-07-10 14:35 ` Josef Bacik
2020-07-10 17:18   ` [PATCH v2] generic: " Boris Burkov
2020-07-10 17:52     ` Josef Bacik
2020-07-12 11:37     ` Zorro Lang
2020-07-13 20:46       ` [PATCH v3] " Boris Burkov
2020-07-14  5:21         ` Zorro Lang
2020-07-19 17:18         ` Eryu Guan
2020-07-20 19:05           ` [PATCH v4] " Boris Burkov
2020-07-21  5:03             ` Zorro Lang
2020-07-19 17:14     ` [PATCH v2] " Eryu Guan

FSTests Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/fstests/0 fstests/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 fstests fstests/ https://lore.kernel.org/fstests \
		fstests@vger.kernel.org
	public-inbox-index fstests

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.fstests


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git