Make sure the repair tests dirty the filesystem before corrupting it.
authorDave Chinner <dgc@sgi.com>
Mon, 4 Jun 2007 06:12:42 +0000 (06:12 +0000)
committerDave Chinner <dgc@sgi.com>
Mon, 4 Jun 2007 06:12:42 +0000 (06:12 +0000)
Merge of master-melb:xfs-cmds:28770a by kenmcd.

  Make sure the repair tests dirty the filesystem before corrupting it.

030.out.irix
030.out.linux
148.out
common.repair

index 54f8e06a7d5c167e202622c5ded13c5b6cebd7f9..6378c73f397d0583448549204690098d57d89da3 100644 (file)
@@ -262,6 +262,10 @@ Wrote X.XXKb (value 0xffffffff)
 Phase 1 - find and verify superblock...
 Phase 2 - zero log...
         - scan filesystem freespace and inode maps...
+bad agbno AGBNO in agfl, agno 0
+bad agbno AGBNO in agfl, agno 0
+bad agbno AGBNO in agfl, agno 0
+bad agbno AGBNO in agfl, agno 0
         - found root inode chunk
 Phase 3 - for each AG...
         - scan and clear agi unlinked lists...
index 48fdedd8a7362bd22e12474159faebc66f0b2fba..2b3dc544d4f9a63d6c594eefe52ecbea30bb87c1 100644 (file)
@@ -270,6 +270,10 @@ Phase 1 - find and verify superblock...
 Phase 2 - using <TYPEOF> log
         - zero log...
         - scan filesystem freespace and inode maps...
+bad agbno AGBNO in agfl, agno 0
+bad agbno AGBNO in agfl, agno 0
+bad agbno AGBNO in agfl, agno 0
+bad agbno AGBNO in agfl, agno 0
         - found root inode chunk
 Phase 3 - for each AG...
         - scan and clear agi unlinked lists...
diff --git a/148.out b/148.out
index 117459cf87087f1e0a44f1b1fcb0a32f63ea78b5..466a55daa8d4cb1c89018d7d7d382d9ebdda4419 100644 (file)
--- a/148.out
+++ b/148.out
@@ -270,6 +270,10 @@ Phase 1 - find and verify superblock...
 Phase 2 - using <TYPEOF> log
         - zero log...
         - scan filesystem freespace and inode maps...
+bad agbno AGBNO in agfl, agno 0
+bad agbno AGBNO in agfl, agno 0
+bad agbno AGBNO in agfl, agno 0
+bad agbno AGBNO in agfl, agno 0
         - found root inode chunk
 Phase 3 - for each AG...
         - scan and clear agi unlinked lists...
index 8edbc45de5015ddfd5ab847a62c28a43a3f41153..3f7353d16afb1b783701b073d0a3d65f70615786 100644 (file)
@@ -72,8 +72,18 @@ _check_repair()
 {
        value=$1
        structure="$2"
+
+       #ensure the filesystem has been dirtied since last repair
+       _scratch_mount
+       POSIXLY_CORRECT=yes \
+       dd if=/bin/sh of=$SCRATCH_MNT/sh 2>&1 |_filter_dd
+       sync
+       rm -f $SCRATCH_MNT/sh
+       umount $SCRATCH_MNT
+
        _zero_position $value "$structure"
        _scratch_xfs_repair 2>&1 | _filter_repair
+
        # some basic sanity checks...
        _check_scratch_fs
        _scratch_mount                                      #mount