]> git.apps.os.sepia.ceph.com Git - xfstests-dev.git/commitdiff
add test 202, xfs_repair handling of single-AG filesystems
authorChristoph Hellwig <hch@lst.de>
Sun, 25 Jan 2009 20:31:16 +0000 (21:31 +0100)
committerChristoph Hellwig <hch@brick.lst.de>
Sun, 25 Jan 2009 20:31:16 +0000 (21:31 +0100)
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Eric Sandeen <sandeen@sandeen.net>
202 [new file with mode: 0644]
202.out [new file with mode: 0644]
group

diff --git a/202 b/202
new file mode 100644 (file)
index 0000000..1eab256
--- /dev/null
+++ b/202
@@ -0,0 +1,42 @@
+#! /bin/sh
+# FS QA Test No. 202
+#
+# Test out the xfs_repair -o force_geometry option on single-AG filesystems.
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2009 Christoph Hellwig.
+#-----------------------------------------------------------------------
+#
+# creator
+owner=hch@lst.de
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1       # failure is the default!
+
+# get standard environment, filters and checks
+. ./common.rc
+. ./common.filter
+
+# real QA test starts here
+_supported_fs xfs
+_supported_os Linux
+
+_require_scratch
+
+echo "== Creating single-AG filesystem =="
+_scratch_mkfs_xfs -d agcount=1 >/dev/null 2>&1
+
+echo "== Trying to repair it (should fail) =="
+xfs_repair $SCRATCH_DEV
+
+echo "== Trying to repair it with -o force_geometry =="
+xfs_repair -o force_geometry $SCRATCH_DEV
+
+# success, all done
+echo "*** done"
+rm -f $seq.full
+status=0
diff --git a/202.out b/202.out
new file mode 100644 (file)
index 0000000..f79ce71
--- /dev/null
+++ b/202.out
@@ -0,0 +1,31 @@
+QA output created by 202
+== Creating single-AG filesystem ==
+== Trying to repair it (should fail) ==
+Phase 1 - find and verify superblock...
+Only one AG detected - cannot validate filesystem geometry.
+Use the -o force_geometry option to proceed.
+== Trying to repair it with -o force_geometry ==
+Phase 1 - find and verify superblock...
+Phase 2 - using internal log
+        - zero log...
+        - scan filesystem freespace and inode maps...
+        - found root inode chunk
+Phase 3 - for each AG...
+        - scan and clear agi unlinked lists...
+        - process known inodes and perform inode discovery...
+        - agno = 0
+        - process newly discovered inodes...
+Phase 4 - check for duplicate blocks...
+        - setting up duplicate extent list...
+        - check for inodes claiming duplicate blocks...
+        - agno = 0
+Phase 5 - rebuild AG headers and trees...
+        - reset superblock...
+Phase 6 - check inode connectivity...
+        - resetting contents of realtime bitmap and summary inodes
+        - traversing filesystem ...
+        - traversal finished ...
+        - moving disconnected inodes to lost+found ...
+Phase 7 - verify and correct link counts...
+done
+*** done
diff --git a/group b/group
index e9d450d9930500dc46ae2097e345ca02edb3d793..9242ca7a34de70388146230544678a4232ee3497 100644 (file)
--- a/group
+++ b/group
@@ -303,3 +303,4 @@ atime
 199 mount auto
 200 mount auto
 201 metadata auto
+202 repair auto