Do more testing on cumulative restores.
authorTim Shimmin <tes@sgi.com>
Wed, 16 Jan 2002 08:12:04 +0000 (08:12 +0000)
committerTim Shimmin <tes@sgi.com>
Wed, 16 Jan 2002 08:12:04 +0000 (08:12 +0000)
It found bug pv#844219.

065 [new file with mode: 0755]
065.out [new file with mode: 0644]
common.dump
group

diff --git a/065 b/065
new file mode 100755 (executable)
index 0000000..04d2c74
--- /dev/null
+++ b/065
@@ -0,0 +1,201 @@
+#! /bin/sh
+# XFS QA Test No. 065
+# $Id: 1.1 $
+#
+# Testing incremental dumps and cumulative restores with
+# "adding, deleting, renaming, linking, and unlinking files and 
+#  directories".
+# Do different operations for each level.
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
+# 
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of version 2 of the GNU General Public License as
+# published by the Free Software Foundation.
+# 
+# This program is distributed in the hope that it would be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# 
+# Further, this software is distributed without any warranty that it is
+# free of the rightful claim of any third person regarding infringement
+# or the like.  Any license provided herein, whether implied or
+# otherwise, applies only to this software file.  Patent licenses, if
+# any, provided herein do not apply to combinations of this program with
+# other software, or any other product whatsoever.
+# 
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write the Free Software Foundation, Inc., 59
+# Temple Place - Suite 330, Boston MA 02111-1307, USA.
+# 
+# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
+# Mountain View, CA  94043, or:
+# 
+# http://www.sgi.com 
+# 
+# For further information regarding this notice, see: 
+# 
+# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
+#-----------------------------------------------------------------------
+#
+# creator
+owner=tes@sagan.melbourne.sgi.com
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1       # failure is the default!
+trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
+
+# get standard environment, filters and checks
+. ./common.rc
+. ./common.filter
+. ./common.dump
+
+
+_ls_size_filter()
+{
+    #
+    # Print size ($5) and fname ($9).
+    # The size is significant since we add to the file as part
+    # of a file change for the incremental.
+    #
+    # Filter out the housekeeping files of xfsrestore
+    #
+    $AWK_PROG 'NF == 9 { print $5, $9; next }
+               NF == 1 { print }' |\
+    sed -e 's/.*dumpdir/dumpdir/' |\
+    egrep -v 'housekeeping|dirattr|dirextattr|namreg|state|tree' 
+}
+
+# real QA test starts here
+
+#
+# adding      - touch/echo, mkdir
+# deleting    - rm, rmdir
+# renaming    - mv
+# linking     - ln
+# unlinking   - rm
+# files and directories
+#
+
+_wipe_fs
+mkdir -p $dump_dir ||\
+    _error "cannot mkdir \"$dump_dir\""
+cd $dump_dir
+
+echo "Do the incremental dumps"
+i=0
+num_dumps=8 # do some extra to ensure nothing changes
+while [ $i -le $num_dumps ]; do
+    cd $dump_dir
+    case $i in
+       0)
+           # adding
+           echo 'add0' >addedfile0
+           echo 'add1' >addedfile1
+           echo 'add2' >addedfile2
+           echo 'add3' >addedfile3
+           mkdir addeddir1
+           mkdir addeddir2
+           mkdir addeddir3
+           mkdir addeddir4
+           echo 'add4' >addeddir3/addedfile4
+           echo 'add5' >addeddir4/addedfile5
+           ;;
+       1)
+           # deleting
+           rm addedfile2 
+           rmdir addeddir2 
+           rm -rf addeddir3
+           ;;
+       2) 
+           # renaming
+           mv addedfile1 addedfile2 # rename to previous existing file
+           mv addeddir4/addedfile5 addeddir4/addedfile4
+           mv addeddir4 addeddir6
+           mv addeddir1 addeddir2 # rename to previous existing dir
+           ;;
+       3)
+           # linking
+           ln addedfile0 linkfile0 
+           ln addedfile0 linkfile0_1  # have a 2nd link to file
+           ln addedfile2 linkfile2
+           ln addeddir6/addedfile4 linkfile64
+           ;;
+       4)
+           # unlinking
+           rm linkfile0  # remove a link
+           rm addedfile2 # remove original link
+           rm linkfile64  # remove link
+           rm addeddir6/addedfile4 # remove last link
+           ;;
+       5)  # link first - then onto 6)
+           rm -rf *
+           echo 'add6' >addedfile6
+           ln addedfile6 linkfile6_1 
+           ln addedfile6 linkfile6_2 
+           ln addedfile6 linkfile6_3 
+           ;;
+       6)  # then move the inode that the links point to
+           mv addedfile6 addedfile6_mv 
+           rm linkfile6_1
+           rm linkfile6_2
+           rm linkfile6_3
+           ln addedfile6_mv linkfile6_mv_1
+           ln addedfile6_mv linkfile6_mv_2 
+           ln addedfile6_mv linkfile6_mv_3 
+           ;;
+    esac
+    cd $here
+    sleep 2
+    _stable_fs
+
+    echo "Listing of what files we have at level $i:"
+    ls -lRF $dump_dir | _ls_size_filter | tee $tmp.ls.$i
+
+    dump_file=$tmp.df.level$i
+    _do_dump_file -l $i
+    i=`expr $i + 1`    
+done
+
+echo "Look at what files are contained in the inc. dump"
+i=0
+while [ $i -le $num_dumps ]; do
+    echo ""
+    echo "restoring from df.level$i"
+    dump_file=$tmp.df.level$i
+    _do_restore_toc
+    i=`expr $i + 1`    
+done
+
+echo "Do the cumulative restores"
+i=0
+while [ $i -le $num_dumps ]; do
+    dump_file=$tmp.df.level$i
+    echo ""
+    echo "restoring from df.level$i"
+    _do_restore_file_cum -l $i
+    echo "ls -lRF restore_dir"
+    ls -lRF $restore_dir/dumpdir | _ls_size_filter |\
+    _check_quota_file | tee $tmp.restorals.$i
+    i=`expr $i + 1`    
+done
+
+echo ""
+echo "Do the ls comparison"
+i=0
+while [ $i -le $num_dumps ]; do
+    echo "Comparing ls of FS with restored FS at level $i"
+    diff -s $tmp.ls.$i $tmp.restorals.$i | sed "s#$tmp#TMP#g"
+    echo ""
+    i=`expr $i + 1`    
+done
+
+
+# success, all done
+status=0
+exit
diff --git a/065.out b/065.out
new file mode 100644 (file)
index 0000000..4f235ff
--- /dev/null
+++ b/065.out
@@ -0,0 +1,910 @@
+QA output created by 065
+Do the incremental dumps
+Listing of what files we have at level 0:
+dumpdir:
+6 addeddir1/
+6 addeddir2/
+23 addeddir3/
+23 addeddir4/
+5 addedfile0
+5 addedfile1
+5 addedfile2
+5 addedfile3
+dumpdir/addeddir1:
+dumpdir/addeddir2:
+dumpdir/addeddir3:
+5 addedfile4
+dumpdir/addeddir4:
+5 addedfile5
+Dumping to file...
+xfsdump  -l0 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT
+xfsdump: using file dump (drive_simple) strategy
+xfsdump: level 0 dump of HOSTNAME:SCRATCH_MNT
+xfsdump: dump date: DATE
+xfsdump: session id: ID
+xfsdump: session label: "stress_065"
+xfsdump: ino map phase 1: skipping (no subtrees specified)
+xfsdump: ino map phase 2: constructing initial dump list
+xfsdump: ino map phase 3: skipping (no pruning necessary)
+xfsdump: ino map phase 4: skipping (size estimated in phase 2)
+xfsdump: ino map phase 5: skipping (only one dump stream)
+xfsdump: ino map construction complete
+xfsdump: estimated dump size: NUM bytes
+xfsdump: /var/xfsdump/inventory created
+xfsdump: creating dump session media file 0 (media 0, file 0)
+xfsdump: dumping ino map
+xfsdump: dumping directories
+xfsdump: dumping non-directory files
+xfsdump: ending media file
+xfsdump: media file size NUM bytes
+xfsdump: dump size (non-dir files) : NUM bytes
+xfsdump: dump complete: SECS seconds elapsed
+xfsdump: Dump Status: SUCCESS
+Listing of what files we have at level 1:
+dumpdir:
+6 addeddir1/
+23 addeddir4/
+5 addedfile0
+5 addedfile1
+5 addedfile3
+dumpdir/addeddir1:
+dumpdir/addeddir4:
+5 addedfile5
+Dumping to file...
+xfsdump  -l1 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT
+xfsdump: using file dump (drive_simple) strategy
+xfsdump: level 1 incremental dump of HOSTNAME:SCRATCH_MNT based on level 0 dump begun DATE
+xfsdump: dump date: DATE
+xfsdump: session id: ID
+xfsdump: session label: "stress_065"
+xfsdump: ino map phase 1: skipping (no subtrees specified)
+xfsdump: ino map phase 2: constructing initial dump list
+xfsdump: ino map phase 3: pruning unneeded subtrees
+xfsdump: ino map phase 4: estimating dump size
+xfsdump: ino map phase 5: skipping (only one dump stream)
+xfsdump: ino map construction complete
+xfsdump: estimated dump size: NUM bytes
+xfsdump: creating dump session media file 0 (media 0, file 0)
+xfsdump: dumping ino map
+xfsdump: dumping directories
+xfsdump: dumping non-directory files
+xfsdump: ending media file
+xfsdump: media file size NUM bytes
+xfsdump: dump size (non-dir files) : NUM bytes
+xfsdump: dump complete: SECS seconds elapsed
+xfsdump: Dump Status: SUCCESS
+Listing of what files we have at level 2:
+dumpdir:
+6 addeddir2/
+23 addeddir6/
+5 addedfile0
+5 addedfile2
+5 addedfile3
+dumpdir/addeddir2:
+dumpdir/addeddir6:
+5 addedfile4
+Dumping to file...
+xfsdump  -l2 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT
+xfsdump: using file dump (drive_simple) strategy
+xfsdump: level 2 incremental dump of HOSTNAME:SCRATCH_MNT based on level 1 dump begun DATE
+xfsdump: dump date: DATE
+xfsdump: session id: ID
+xfsdump: session label: "stress_065"
+xfsdump: ino map phase 1: skipping (no subtrees specified)
+xfsdump: ino map phase 2: constructing initial dump list
+xfsdump: ino map phase 3: pruning unneeded subtrees
+xfsdump: ino map phase 4: estimating dump size
+xfsdump: ino map phase 5: skipping (only one dump stream)
+xfsdump: ino map construction complete
+xfsdump: estimated dump size: NUM bytes
+xfsdump: creating dump session media file 0 (media 0, file 0)
+xfsdump: dumping ino map
+xfsdump: dumping directories
+xfsdump: dumping non-directory files
+xfsdump: ending media file
+xfsdump: media file size NUM bytes
+xfsdump: dump size (non-dir files) : NUM bytes
+xfsdump: dump complete: SECS seconds elapsed
+xfsdump: Dump Status: SUCCESS
+Listing of what files we have at level 3:
+dumpdir:
+6 addeddir2/
+23 addeddir6/
+5 addedfile0
+5 addedfile2
+5 addedfile3
+5 linkfile0
+5 linkfile0_1
+5 linkfile2
+5 linkfile64
+dumpdir/addeddir2:
+dumpdir/addeddir6:
+5 addedfile4
+Dumping to file...
+xfsdump  -l3 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT
+xfsdump: using file dump (drive_simple) strategy
+xfsdump: level 3 incremental dump of HOSTNAME:SCRATCH_MNT based on level 2 dump begun DATE
+xfsdump: dump date: DATE
+xfsdump: session id: ID
+xfsdump: session label: "stress_065"
+xfsdump: ino map phase 1: skipping (no subtrees specified)
+xfsdump: ino map phase 2: constructing initial dump list
+xfsdump: ino map phase 3: pruning unneeded subtrees
+xfsdump: ino map phase 4: estimating dump size
+xfsdump: ino map phase 5: skipping (only one dump stream)
+xfsdump: ino map construction complete
+xfsdump: estimated dump size: NUM bytes
+xfsdump: creating dump session media file 0 (media 0, file 0)
+xfsdump: dumping ino map
+xfsdump: dumping directories
+xfsdump: dumping non-directory files
+xfsdump: ending media file
+xfsdump: media file size NUM bytes
+xfsdump: dump size (non-dir files) : NUM bytes
+xfsdump: dump complete: SECS seconds elapsed
+xfsdump: Dump Status: SUCCESS
+Listing of what files we have at level 4:
+dumpdir:
+6 addeddir2/
+6 addeddir6/
+5 addedfile0
+5 addedfile3
+5 linkfile0_1
+5 linkfile2
+dumpdir/addeddir2:
+dumpdir/addeddir6:
+Dumping to file...
+xfsdump  -l4 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT
+xfsdump: using file dump (drive_simple) strategy
+xfsdump: level 4 incremental dump of HOSTNAME:SCRATCH_MNT based on level 3 dump begun DATE
+xfsdump: dump date: DATE
+xfsdump: session id: ID
+xfsdump: session label: "stress_065"
+xfsdump: ino map phase 1: skipping (no subtrees specified)
+xfsdump: ino map phase 2: constructing initial dump list
+xfsdump: ino map phase 3: pruning unneeded subtrees
+xfsdump: ino map phase 4: estimating dump size
+xfsdump: ino map phase 5: skipping (only one dump stream)
+xfsdump: ino map construction complete
+xfsdump: estimated dump size: NUM bytes
+xfsdump: creating dump session media file 0 (media 0, file 0)
+xfsdump: dumping ino map
+xfsdump: dumping directories
+xfsdump: dumping non-directory files
+xfsdump: ending media file
+xfsdump: media file size NUM bytes
+xfsdump: dump size (non-dir files) : NUM bytes
+xfsdump: dump complete: SECS seconds elapsed
+xfsdump: Dump Status: SUCCESS
+Listing of what files we have at level 5:
+dumpdir:
+5 addedfile6
+5 linkfile6_1
+5 linkfile6_2
+5 linkfile6_3
+Dumping to file...
+xfsdump  -l5 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT
+xfsdump: using file dump (drive_simple) strategy
+xfsdump: level 5 incremental dump of HOSTNAME:SCRATCH_MNT based on level 4 dump begun DATE
+xfsdump: dump date: DATE
+xfsdump: session id: ID
+xfsdump: session label: "stress_065"
+xfsdump: ino map phase 1: skipping (no subtrees specified)
+xfsdump: ino map phase 2: constructing initial dump list
+xfsdump: ino map phase 3: pruning unneeded subtrees
+xfsdump: ino map phase 4: estimating dump size
+xfsdump: ino map phase 5: skipping (only one dump stream)
+xfsdump: ino map construction complete
+xfsdump: estimated dump size: NUM bytes
+xfsdump: creating dump session media file 0 (media 0, file 0)
+xfsdump: dumping ino map
+xfsdump: dumping directories
+xfsdump: dumping non-directory files
+xfsdump: ending media file
+xfsdump: media file size NUM bytes
+xfsdump: dump size (non-dir files) : NUM bytes
+xfsdump: dump complete: SECS seconds elapsed
+xfsdump: Dump Status: SUCCESS
+Listing of what files we have at level 6:
+dumpdir:
+5 addedfile6_mv
+5 linkfile6_mv_1
+5 linkfile6_mv_2
+5 linkfile6_mv_3
+Dumping to file...
+xfsdump  -l6 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT
+xfsdump: using file dump (drive_simple) strategy
+xfsdump: level 6 incremental dump of HOSTNAME:SCRATCH_MNT based on level 5 dump begun DATE
+xfsdump: dump date: DATE
+xfsdump: session id: ID
+xfsdump: session label: "stress_065"
+xfsdump: ino map phase 1: skipping (no subtrees specified)
+xfsdump: ino map phase 2: constructing initial dump list
+xfsdump: ino map phase 3: pruning unneeded subtrees
+xfsdump: ino map phase 4: estimating dump size
+xfsdump: ino map phase 5: skipping (only one dump stream)
+xfsdump: ino map construction complete
+xfsdump: estimated dump size: NUM bytes
+xfsdump: creating dump session media file 0 (media 0, file 0)
+xfsdump: dumping ino map
+xfsdump: dumping directories
+xfsdump: dumping non-directory files
+xfsdump: ending media file
+xfsdump: media file size NUM bytes
+xfsdump: dump size (non-dir files) : NUM bytes
+xfsdump: dump complete: SECS seconds elapsed
+xfsdump: Dump Status: SUCCESS
+Listing of what files we have at level 7:
+dumpdir:
+5 addedfile6_mv
+5 linkfile6_mv_1
+5 linkfile6_mv_2
+5 linkfile6_mv_3
+Dumping to file...
+xfsdump  -l7 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT
+xfsdump: using file dump (drive_simple) strategy
+xfsdump: level 7 incremental dump of HOSTNAME:SCRATCH_MNT based on level 6 dump begun DATE
+xfsdump: dump date: DATE
+xfsdump: session id: ID
+xfsdump: session label: "stress_065"
+xfsdump: ino map phase 1: skipping (no subtrees specified)
+xfsdump: ino map phase 2: constructing initial dump list
+xfsdump: ino map phase 3: pruning unneeded subtrees
+xfsdump: ino map phase 4: estimating dump size
+xfsdump: ino map phase 5: skipping (only one dump stream)
+xfsdump: ino map construction complete
+xfsdump: estimated dump size: NUM bytes
+xfsdump: creating dump session media file 0 (media 0, file 0)
+xfsdump: dumping ino map
+xfsdump: dumping directories
+xfsdump: dumping non-directory files
+xfsdump: ending media file
+xfsdump: media file size NUM bytes
+xfsdump: dump size (non-dir files) : NUM bytes
+xfsdump: dump complete: SECS seconds elapsed
+xfsdump: Dump Status: SUCCESS
+Listing of what files we have at level 8:
+dumpdir:
+5 addedfile6_mv
+5 linkfile6_mv_1
+5 linkfile6_mv_2
+5 linkfile6_mv_3
+Dumping to file...
+xfsdump  -l8 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT
+xfsdump: using file dump (drive_simple) strategy
+xfsdump: level 8 incremental dump of HOSTNAME:SCRATCH_MNT based on level 7 dump begun DATE
+xfsdump: dump date: DATE
+xfsdump: session id: ID
+xfsdump: session label: "stress_065"
+xfsdump: ino map phase 1: skipping (no subtrees specified)
+xfsdump: ino map phase 2: constructing initial dump list
+xfsdump: ino map phase 3: pruning unneeded subtrees
+xfsdump: ino map phase 4: estimating dump size
+xfsdump: ino map phase 5: skipping (only one dump stream)
+xfsdump: ino map construction complete
+xfsdump: estimated dump size: NUM bytes
+xfsdump: creating dump session media file 0 (media 0, file 0)
+xfsdump: dumping ino map
+xfsdump: dumping directories
+xfsdump: dumping non-directory files
+xfsdump: ending media file
+xfsdump: media file size NUM bytes
+xfsdump: dump size (non-dir files) : NUM bytes
+xfsdump: dump complete: SECS seconds elapsed
+xfsdump: Dump Status: SUCCESS
+Look at what files are contained in the inc. dump
+
+restoring from df.level0
+Contents of dump ...
+xfsrestore  -f DUMP_FILE -t
+xfsrestore: using file dump (drive_simple) strategy
+xfsrestore: searching media for dump
+xfsrestore: examining media file 0
+xfsrestore: dump description: 
+xfsrestore: hostname: HOSTNAME
+xfsrestore: mount point: SCRATCH_MNT
+xfsrestore: volume: SCRATCH_DEV
+xfsrestore: session time: TIME
+xfsrestore: level: 0
+xfsrestore: session label: "stress_065"
+xfsrestore: media label: "stress_tape_media"
+xfsrestore: file system id: ID
+xfsrestore: session id: ID
+xfsrestore: media id: ID
+xfsrestore: using online session inventory
+xfsrestore: searching media for directory dump
+xfsrestore: reading directories
+xfsrestore: 6 directories and 11 entries processed
+xfsrestore: directory post-processing
+xfsrestore: reading non-directory files
+xfsrestore: table of contents display complete: SECS seconds elapsed
+xfsrestore: Restore Status: SUCCESS
+
+dumpdir/addeddir3/addedfile4
+dumpdir/addeddir4/addedfile5
+dumpdir/addedfile0
+dumpdir/addedfile1
+dumpdir/addedfile2
+dumpdir/addedfile3
+
+restoring from df.level1
+Contents of dump ...
+xfsrestore  -f DUMP_FILE -t
+xfsrestore: using file dump (drive_simple) strategy
+xfsrestore: searching media for dump
+xfsrestore: examining media file 0
+xfsrestore: dump description: 
+xfsrestore: hostname: HOSTNAME
+xfsrestore: mount point: SCRATCH_MNT
+xfsrestore: volume: SCRATCH_DEV
+xfsrestore: session time: TIME
+xfsrestore: level: 1
+xfsrestore: session label: "stress_065"
+xfsrestore: media label: "stress_tape_media"
+xfsrestore: file system id: ID
+xfsrestore: session id: ID
+xfsrestore: media id: ID
+xfsrestore: using online session inventory
+xfsrestore: searching media for directory dump
+xfsrestore: reading directories
+xfsrestore: 2 directories and 6 entries processed
+xfsrestore: directory post-processing
+xfsrestore: reading non-directory files
+xfsrestore: table of contents display complete: SECS seconds elapsed
+xfsrestore: Restore Status: SUCCESS
+
+
+restoring from df.level2
+Contents of dump ...
+xfsrestore  -f DUMP_FILE -t
+xfsrestore: using file dump (drive_simple) strategy
+xfsrestore: searching media for dump
+xfsrestore: examining media file 0
+xfsrestore: dump description: 
+xfsrestore: hostname: HOSTNAME
+xfsrestore: mount point: SCRATCH_MNT
+xfsrestore: volume: SCRATCH_DEV
+xfsrestore: session time: TIME
+xfsrestore: level: 2
+xfsrestore: session label: "stress_065"
+xfsrestore: media label: "stress_tape_media"
+xfsrestore: file system id: ID
+xfsrestore: session id: ID
+xfsrestore: media id: ID
+xfsrestore: using online session inventory
+xfsrestore: searching media for directory dump
+xfsrestore: reading directories
+xfsrestore: 4 directories and 7 entries processed
+xfsrestore: directory post-processing
+xfsrestore: reading non-directory files
+xfsrestore: table of contents display complete: SECS seconds elapsed
+xfsrestore: Restore Status: SUCCESS
+
+dumpdir/addeddir6/addedfile4
+dumpdir/addedfile2
+
+restoring from df.level3
+Contents of dump ...
+xfsrestore  -f DUMP_FILE -t
+xfsrestore: using file dump (drive_simple) strategy
+xfsrestore: searching media for dump
+xfsrestore: examining media file 0
+xfsrestore: dump description: 
+xfsrestore: hostname: HOSTNAME
+xfsrestore: mount point: SCRATCH_MNT
+xfsrestore: volume: SCRATCH_DEV
+xfsrestore: session time: TIME
+xfsrestore: level: 3
+xfsrestore: session label: "stress_065"
+xfsrestore: media label: "stress_tape_media"
+xfsrestore: file system id: ID
+xfsrestore: session id: ID
+xfsrestore: media id: ID
+xfsrestore: using online session inventory
+xfsrestore: searching media for directory dump
+xfsrestore: reading directories
+xfsrestore: 3 directories and 11 entries processed
+xfsrestore: directory post-processing
+xfsrestore: reading non-directory files
+xfsrestore: table of contents display complete: SECS seconds elapsed
+xfsrestore: Restore Status: SUCCESS
+
+dumpdir/addeddir6/addedfile4
+dumpdir/addedfile0
+dumpdir/addedfile2
+dumpdir/linkfile0
+dumpdir/linkfile0_1
+dumpdir/linkfile2
+dumpdir/linkfile64
+
+restoring from df.level4
+Contents of dump ...
+xfsrestore  -f DUMP_FILE -t
+xfsrestore: using file dump (drive_simple) strategy
+xfsrestore: searching media for dump
+xfsrestore: examining media file 0
+xfsrestore: dump description: 
+xfsrestore: hostname: HOSTNAME
+xfsrestore: mount point: SCRATCH_MNT
+xfsrestore: volume: SCRATCH_DEV
+xfsrestore: session time: TIME
+xfsrestore: level: 4
+xfsrestore: session label: "stress_065"
+xfsrestore: media label: "stress_tape_media"
+xfsrestore: file system id: ID
+xfsrestore: session id: ID
+xfsrestore: media id: ID
+xfsrestore: using online session inventory
+xfsrestore: searching media for directory dump
+xfsrestore: reading directories
+xfsrestore: 3 directories and 7 entries processed
+xfsrestore: directory post-processing
+xfsrestore: reading non-directory files
+xfsrestore: table of contents display complete: SECS seconds elapsed
+xfsrestore: Restore Status: SUCCESS
+
+dumpdir/addedfile0
+dumpdir/linkfile0_1
+dumpdir/linkfile2
+
+restoring from df.level5
+Contents of dump ...
+xfsrestore  -f DUMP_FILE -t
+xfsrestore: using file dump (drive_simple) strategy
+xfsrestore: searching media for dump
+xfsrestore: examining media file 0
+xfsrestore: dump description: 
+xfsrestore: hostname: HOSTNAME
+xfsrestore: mount point: SCRATCH_MNT
+xfsrestore: volume: SCRATCH_DEV
+xfsrestore: session time: TIME
+xfsrestore: level: 5
+xfsrestore: session label: "stress_065"
+xfsrestore: media label: "stress_tape_media"
+xfsrestore: file system id: ID
+xfsrestore: session id: ID
+xfsrestore: media id: ID
+xfsrestore: using online session inventory
+xfsrestore: searching media for directory dump
+xfsrestore: reading directories
+xfsrestore: 2 directories and 5 entries processed
+xfsrestore: directory post-processing
+xfsrestore: reading non-directory files
+xfsrestore: table of contents display complete: SECS seconds elapsed
+xfsrestore: Restore Status: SUCCESS
+
+dumpdir/addedfile6
+dumpdir/linkfile6_1
+dumpdir/linkfile6_2
+dumpdir/linkfile6_3
+
+restoring from df.level6
+Contents of dump ...
+xfsrestore  -f DUMP_FILE -t
+xfsrestore: using file dump (drive_simple) strategy
+xfsrestore: searching media for dump
+xfsrestore: examining media file 0
+xfsrestore: dump description: 
+xfsrestore: hostname: HOSTNAME
+xfsrestore: mount point: SCRATCH_MNT
+xfsrestore: volume: SCRATCH_DEV
+xfsrestore: session time: TIME
+xfsrestore: level: 6
+xfsrestore: session label: "stress_065"
+xfsrestore: media label: "stress_tape_media"
+xfsrestore: file system id: ID
+xfsrestore: session id: ID
+xfsrestore: media id: ID
+xfsrestore: using online session inventory
+xfsrestore: searching media for directory dump
+xfsrestore: reading directories
+xfsrestore: 2 directories and 5 entries processed
+xfsrestore: directory post-processing
+xfsrestore: reading non-directory files
+xfsrestore: table of contents display complete: SECS seconds elapsed
+xfsrestore: Restore Status: SUCCESS
+
+dumpdir/addedfile6_mv
+dumpdir/linkfile6_mv_1
+dumpdir/linkfile6_mv_2
+dumpdir/linkfile6_mv_3
+
+restoring from df.level7
+Contents of dump ...
+xfsrestore  -f DUMP_FILE -t
+xfsrestore: using file dump (drive_simple) strategy
+xfsrestore: searching media for dump
+xfsrestore: examining media file 0
+xfsrestore: dump description: 
+xfsrestore: hostname: HOSTNAME
+xfsrestore: mount point: SCRATCH_MNT
+xfsrestore: volume: SCRATCH_DEV
+xfsrestore: session time: TIME
+xfsrestore: level: 7
+xfsrestore: session label: "stress_065"
+xfsrestore: media label: "stress_tape_media"
+xfsrestore: file system id: ID
+xfsrestore: session id: ID
+xfsrestore: media id: ID
+xfsrestore: using online session inventory
+xfsrestore: searching media for directory dump
+xfsrestore: reading directories
+xfsrestore: 0 directories and 0 entries processed
+xfsrestore: directory post-processing
+xfsrestore: table of contents display complete: SECS seconds elapsed
+xfsrestore: Restore Status: SUCCESS
+
+
+restoring from df.level8
+Contents of dump ...
+xfsrestore  -f DUMP_FILE -t
+xfsrestore: using file dump (drive_simple) strategy
+xfsrestore: searching media for dump
+xfsrestore: examining media file 0
+xfsrestore: dump description: 
+xfsrestore: hostname: HOSTNAME
+xfsrestore: mount point: SCRATCH_MNT
+xfsrestore: volume: SCRATCH_DEV
+xfsrestore: session time: TIME
+xfsrestore: level: 8
+xfsrestore: session label: "stress_065"
+xfsrestore: media label: "stress_tape_media"
+xfsrestore: file system id: ID
+xfsrestore: session id: ID
+xfsrestore: media id: ID
+xfsrestore: using online session inventory
+xfsrestore: searching media for directory dump
+xfsrestore: reading directories
+xfsrestore: 0 directories and 0 entries processed
+xfsrestore: directory post-processing
+xfsrestore: table of contents display complete: SECS seconds elapsed
+xfsrestore: Restore Status: SUCCESS
+
+Do the cumulative restores
+
+restoring from df.level0
+Restoring cumumlative from file...
+xfsrestore  -f DUMP_FILE -r RESTORE_DIR
+xfsrestore: using file dump (drive_simple) strategy
+xfsrestore: searching media for dump
+xfsrestore: examining media file 0
+xfsrestore: dump description: 
+xfsrestore: hostname: HOSTNAME
+xfsrestore: mount point: SCRATCH_MNT
+xfsrestore: volume: SCRATCH_DEV
+xfsrestore: session time: TIME
+xfsrestore: level: 0
+xfsrestore: session label: "stress_065"
+xfsrestore: media label: "stress_tape_media"
+xfsrestore: file system id: ID
+xfsrestore: session id: ID
+xfsrestore: media id: ID
+xfsrestore: using online session inventory
+xfsrestore: searching media for directory dump
+xfsrestore: reading directories
+xfsrestore: 6 directories and 11 entries processed
+xfsrestore: directory post-processing
+xfsrestore: restoring non-directory files
+xfsrestore: restore complete: SECS seconds elapsed
+xfsrestore: Restore Status: SUCCESS
+ls -lRF restore_dir
+dumpdir:
+6 addeddir1/
+6 addeddir2/
+23 addeddir3/
+23 addeddir4/
+5 addedfile0
+5 addedfile1
+5 addedfile2
+5 addedfile3
+dumpdir/addeddir1:
+dumpdir/addeddir2:
+dumpdir/addeddir3:
+5 addedfile4
+dumpdir/addeddir4:
+5 addedfile5
+
+restoring from df.level1
+Restoring cumumlative from file...
+xfsrestore  -f DUMP_FILE -r RESTORE_DIR
+xfsrestore: using file dump (drive_simple) strategy
+xfsrestore: searching media for dump
+xfsrestore: examining media file 0
+xfsrestore: dump description: 
+xfsrestore: hostname: HOSTNAME
+xfsrestore: mount point: SCRATCH_MNT
+xfsrestore: volume: SCRATCH_DEV
+xfsrestore: session time: TIME
+xfsrestore: level: 1
+xfsrestore: session label: "stress_065"
+xfsrestore: media label: "stress_tape_media"
+xfsrestore: file system id: ID
+xfsrestore: session id: ID
+xfsrestore: media id: ID
+xfsrestore: using online session inventory
+xfsrestore: searching media for directory dump
+xfsrestore: reading directories
+xfsrestore: 2 directories and 6 entries processed
+xfsrestore: directory post-processing
+xfsrestore: restoring non-directory files
+xfsrestore: restore complete: SECS seconds elapsed
+xfsrestore: Restore Status: SUCCESS
+ls -lRF restore_dir
+dumpdir:
+6 addeddir1/
+23 addeddir4/
+5 addedfile0
+5 addedfile1
+5 addedfile3
+dumpdir/addeddir1:
+dumpdir/addeddir4:
+5 addedfile5
+
+restoring from df.level2
+Restoring cumumlative from file...
+xfsrestore  -f DUMP_FILE -r RESTORE_DIR
+xfsrestore: using file dump (drive_simple) strategy
+xfsrestore: searching media for dump
+xfsrestore: examining media file 0
+xfsrestore: dump description: 
+xfsrestore: hostname: HOSTNAME
+xfsrestore: mount point: SCRATCH_MNT
+xfsrestore: volume: SCRATCH_DEV
+xfsrestore: session time: TIME
+xfsrestore: level: 2
+xfsrestore: session label: "stress_065"
+xfsrestore: media label: "stress_tape_media"
+xfsrestore: file system id: ID
+xfsrestore: session id: ID
+xfsrestore: media id: ID
+xfsrestore: using online session inventory
+xfsrestore: searching media for directory dump
+xfsrestore: reading directories
+xfsrestore: 4 directories and 7 entries processed
+xfsrestore: directory post-processing
+xfsrestore: restoring non-directory files
+xfsrestore: restore complete: SECS seconds elapsed
+xfsrestore: Restore Status: SUCCESS
+ls -lRF restore_dir
+dumpdir:
+6 addeddir2/
+23 addeddir6/
+5 addedfile0
+5 addedfile2
+5 addedfile3
+dumpdir/addeddir2:
+dumpdir/addeddir6:
+5 addedfile4
+
+restoring from df.level3
+Restoring cumumlative from file...
+xfsrestore  -f DUMP_FILE -r RESTORE_DIR
+xfsrestore: using file dump (drive_simple) strategy
+xfsrestore: searching media for dump
+xfsrestore: examining media file 0
+xfsrestore: dump description: 
+xfsrestore: hostname: HOSTNAME
+xfsrestore: mount point: SCRATCH_MNT
+xfsrestore: volume: SCRATCH_DEV
+xfsrestore: session time: TIME
+xfsrestore: level: 3
+xfsrestore: session label: "stress_065"
+xfsrestore: media label: "stress_tape_media"
+xfsrestore: file system id: ID
+xfsrestore: session id: ID
+xfsrestore: media id: ID
+xfsrestore: using online session inventory
+xfsrestore: searching media for directory dump
+xfsrestore: reading directories
+xfsrestore: 3 directories and 11 entries processed
+xfsrestore: directory post-processing
+xfsrestore: restoring non-directory files
+xfsrestore: restore complete: SECS seconds elapsed
+xfsrestore: Restore Status: SUCCESS
+ls -lRF restore_dir
+dumpdir:
+6 addeddir2/
+23 addeddir6/
+5 addedfile0
+5 addedfile2
+5 addedfile3
+5 linkfile0
+5 linkfile0_1
+5 linkfile2
+5 linkfile64
+dumpdir/addeddir2:
+dumpdir/addeddir6:
+5 addedfile4
+
+restoring from df.level4
+Restoring cumumlative from file...
+xfsrestore  -f DUMP_FILE -r RESTORE_DIR
+xfsrestore: using file dump (drive_simple) strategy
+xfsrestore: searching media for dump
+xfsrestore: examining media file 0
+xfsrestore: dump description: 
+xfsrestore: hostname: HOSTNAME
+xfsrestore: mount point: SCRATCH_MNT
+xfsrestore: volume: SCRATCH_DEV
+xfsrestore: session time: TIME
+xfsrestore: level: 4
+xfsrestore: session label: "stress_065"
+xfsrestore: media label: "stress_tape_media"
+xfsrestore: file system id: ID
+xfsrestore: session id: ID
+xfsrestore: media id: ID
+xfsrestore: using online session inventory
+xfsrestore: searching media for directory dump
+xfsrestore: reading directories
+xfsrestore: 3 directories and 7 entries processed
+xfsrestore: directory post-processing
+xfsrestore: restoring non-directory files
+xfsrestore: restore complete: SECS seconds elapsed
+xfsrestore: Restore Status: SUCCESS
+ls -lRF restore_dir
+dumpdir:
+6 addeddir2/
+6 addeddir6/
+5 addedfile0
+5 addedfile3
+5 linkfile0_1
+5 linkfile2
+dumpdir/addeddir2:
+dumpdir/addeddir6:
+
+restoring from df.level5
+Restoring cumumlative from file...
+xfsrestore  -f DUMP_FILE -r RESTORE_DIR
+xfsrestore: using file dump (drive_simple) strategy
+xfsrestore: searching media for dump
+xfsrestore: examining media file 0
+xfsrestore: dump description: 
+xfsrestore: hostname: HOSTNAME
+xfsrestore: mount point: SCRATCH_MNT
+xfsrestore: volume: SCRATCH_DEV
+xfsrestore: session time: TIME
+xfsrestore: level: 5
+xfsrestore: session label: "stress_065"
+xfsrestore: media label: "stress_tape_media"
+xfsrestore: file system id: ID
+xfsrestore: session id: ID
+xfsrestore: media id: ID
+xfsrestore: using online session inventory
+xfsrestore: searching media for directory dump
+xfsrestore: reading directories
+xfsrestore: 2 directories and 5 entries processed
+xfsrestore: directory post-processing
+xfsrestore: restoring non-directory files
+xfsrestore: restore complete: SECS seconds elapsed
+xfsrestore: Restore Status: SUCCESS
+ls -lRF restore_dir
+dumpdir:
+5 addedfile6
+5 linkfile6_1
+5 linkfile6_2
+5 linkfile6_3
+
+restoring from df.level6
+Restoring cumumlative from file...
+xfsrestore  -f DUMP_FILE -r RESTORE_DIR
+xfsrestore: using file dump (drive_simple) strategy
+xfsrestore: searching media for dump
+xfsrestore: examining media file 0
+xfsrestore: dump description: 
+xfsrestore: hostname: HOSTNAME
+xfsrestore: mount point: SCRATCH_MNT
+xfsrestore: volume: SCRATCH_DEV
+xfsrestore: session time: TIME
+xfsrestore: level: 6
+xfsrestore: session label: "stress_065"
+xfsrestore: media label: "stress_tape_media"
+xfsrestore: file system id: ID
+xfsrestore: session id: ID
+xfsrestore: media id: ID
+xfsrestore: using online session inventory
+xfsrestore: searching media for directory dump
+xfsrestore: reading directories
+xfsrestore: 2 directories and 5 entries processed
+xfsrestore: directory post-processing
+xfsrestore: restoring non-directory files
+xfsrestore: restore complete: SECS seconds elapsed
+xfsrestore: Restore Status: SUCCESS
+ls -lRF restore_dir
+dumpdir:
+5 addedfile6_mv
+5 linkfile6_mv_1
+5 linkfile6_mv_2
+5 linkfile6_mv_3
+
+restoring from df.level7
+Restoring cumumlative from file...
+xfsrestore  -f DUMP_FILE -r RESTORE_DIR
+xfsrestore: using file dump (drive_simple) strategy
+xfsrestore: searching media for dump
+xfsrestore: examining media file 0
+xfsrestore: dump description: 
+xfsrestore: hostname: HOSTNAME
+xfsrestore: mount point: SCRATCH_MNT
+xfsrestore: volume: SCRATCH_DEV
+xfsrestore: session time: TIME
+xfsrestore: level: 7
+xfsrestore: session label: "stress_065"
+xfsrestore: media label: "stress_tape_media"
+xfsrestore: file system id: ID
+xfsrestore: session id: ID
+xfsrestore: media id: ID
+xfsrestore: using online session inventory
+xfsrestore: searching media for directory dump
+xfsrestore: reading directories
+xfsrestore: 0 directories and 0 entries processed
+xfsrestore: directory post-processing
+xfsrestore: restoring non-directory files
+xfsrestore: restore complete: SECS seconds elapsed
+xfsrestore: Restore Status: SUCCESS
+ls -lRF restore_dir
+dumpdir:
+5 addedfile6_mv
+5 linkfile6_mv_1
+5 linkfile6_mv_2
+5 linkfile6_mv_3
+
+restoring from df.level8
+Restoring cumumlative from file...
+xfsrestore  -f DUMP_FILE -r RESTORE_DIR
+xfsrestore: using file dump (drive_simple) strategy
+xfsrestore: searching media for dump
+xfsrestore: examining media file 0
+xfsrestore: dump description: 
+xfsrestore: hostname: HOSTNAME
+xfsrestore: mount point: SCRATCH_MNT
+xfsrestore: volume: SCRATCH_DEV
+xfsrestore: session time: TIME
+xfsrestore: level: 8
+xfsrestore: session label: "stress_065"
+xfsrestore: media label: "stress_tape_media"
+xfsrestore: file system id: ID
+xfsrestore: session id: ID
+xfsrestore: media id: ID
+xfsrestore: using online session inventory
+xfsrestore: searching media for directory dump
+xfsrestore: reading directories
+xfsrestore: 0 directories and 0 entries processed
+xfsrestore: directory post-processing
+xfsrestore: restoring non-directory files
+xfsrestore: restore complete: SECS seconds elapsed
+xfsrestore: Restore Status: SUCCESS
+ls -lRF restore_dir
+dumpdir:
+5 addedfile6_mv
+5 linkfile6_mv_1
+5 linkfile6_mv_2
+5 linkfile6_mv_3
+
+Do the ls comparison
+Comparing ls of FS with restored FS at level 0
+Files TMP.ls.0 and TMP.restorals.0 are identical
+
+Comparing ls of FS with restored FS at level 1
+Files TMP.ls.1 and TMP.restorals.1 are identical
+
+Comparing ls of FS with restored FS at level 2
+Files TMP.ls.2 and TMP.restorals.2 are identical
+
+Comparing ls of FS with restored FS at level 3
+Files TMP.ls.3 and TMP.restorals.3 are identical
+
+Comparing ls of FS with restored FS at level 4
+Files TMP.ls.4 and TMP.restorals.4 are identical
+
+Comparing ls of FS with restored FS at level 5
+Files TMP.ls.5 and TMP.restorals.5 are identical
+
+Comparing ls of FS with restored FS at level 6
+Files TMP.ls.6 and TMP.restorals.6 are identical
+
+Comparing ls of FS with restored FS at level 7
+Files TMP.ls.7 and TMP.restorals.7 are identical
+
+Comparing ls of FS with restored FS at level 8
+Files TMP.ls.8 and TMP.restorals.8 are identical
+
index 4f89b6f59d0847c4a51a83d64d1e435a6660b3ce..88651c50691e74540e695426266f57172c55c710 100644 (file)
@@ -296,10 +296,12 @@ _cleanup()
 #
 _stable_fs()
 {
+    _saveddir=`pwd`; cd /
     umount $SCRATCH_MNT >>$seq.full ||\
        _error "unmount failed"
     mount -t xfs $SCRATCH_DEV $SCRATCH_MNT >>$seq.full ||\
        _error "mount failed"
+    cd $_saveddir
 }
 
 #
diff --git a/group b/group
index 4b006b22bfaf14b37fcf12c950b72e9d7882c6bb..b064188d9d133aceb4699b6011655db89480dcc6 100644 (file)
--- a/group
+++ b/group
@@ -119,3 +119,4 @@ ioctl               nathans@sgi.com
 062 attr auto
 063 xfsdump auto
 064 xfsdump auto
+065 xfsdump auto