Hey Eric, On Wed, Sep 19, 2012 at 05:53:56PM -0500, Eric Sandeen wrote: > More filesystems have grown freeze capability, so rather than > hardcoding several in _supported_fs, make tests 068 and 280 > generic and then add a new _require_freeze() which checks whether > the fs under test can be frozen before beginning the test. > > Minor other cleanups to 280: > - remove extra _supported_fs line > - clear $seq.full before beginning > > Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx> > --- > > diff --git a/068 b/068 > index b595d1d..617420c 100755 > --- a/068 > +++ b/068 > @@ -51,10 +51,11 @@ trap "_cleanup" 0 1 2 3 15 > . ./common.filter > > # real QA test starts here > -_supported_fs btrfs ext3 ext4 xfs > +_supported_fs generic > _supported_os Linux IRIX > > _require_scratch > +_require_freeze > > echo "*** init FS" > > diff --git a/280 b/280 > index 55849ed..5e26173 100755 > --- a/280 > +++ b/280 > @@ -45,13 +45,15 @@ _cleanup() > > _require_scratch > _require_quota > +_require_freeze > > # real QA test starts here > > # Modify as appropriate. > -_supported_fs generic > _supported_os Linux > -_supported_fs ext3 ext4 xfs > +_supported_fs generic > + > +rm -f $seq.full > > umount $SCRATCH_DEV 2>/dev/null > _scratch_mkfs >> $seq.full 2>&1 > diff --git a/common.rc b/common.rc > index 602513a..0e8a306 100644 > --- a/common.rc > +++ b/common.rc > @@ -1758,6 +1758,15 @@ _require_btrfs() > [ $? -eq 0 ] || _notrun "$BTRFS_UTIL_PROG too old (must support $cmd)" > } > > +# Does freeze work on this fs? > +_require_freeze() > +{ > + xfs_freeze -f "$TEST_DIR" >/dev/null 2>&1 > + result=$? > + xfs_freeze -u "$TEST_DIR" >/dev/null 2>&1 > + [ $result -eq 0 ] || _notrun "$FSTYP does not support freezing" > +} > + Pretty good idea to generalize _require_freeze. It looks like xfs_freeze is a script that uses xfs_io which uses xfsctl XFS_IOC_FREEZE. So isn't what you have here xfs specific? It wouldn't work for the other filesystems that implement s_op.freeze_fs: 1 1502 btrfs/super.c <<GLOBAL>> .freeze_fs = btrfs_freeze, 2 804 ext3/super.c <<GLOBAL>> .freeze_fs = ext3_freeze, 3 1238 ext4/super.c <<GLOBAL>> .freeze_fs = ext4_freeze, 4 1578 gfs2/super.c <<GLOBAL>> .freeze_fs = gfs2_freeze, 5 760 jfs/super.c <<GLOBAL>> .freeze_fs = jfs_freeze, 6 688 nilfs2/super.c <<GLOBAL>> .freeze_fs = nilfs_freeze, 7 620 reiserfs/super.c <<GLOBAL>> .freeze_fs = reiserfs_freeze, 8 1536 xfs/linux-2.6/xfs_super.c <<GLOBAL>> .freeze_fs = xfs_fs_freeze, Maybe it would be better if we had some kind of interface to test whether .freeze_fs is defined (if there isn't one already) rather than freeze and thaw to find out. Oddly freeze_super seems to just return 0 when .freeze_fs is not defined. Regards, Ben _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs