Test to reproduce PV951636: project quotas not updated if a file is mv'd into that...
authorAllan Randall <allanr@sgi.com>
Thu, 28 Sep 2006 15:51:04 +0000 (15:51 +0000)
committerAllan Randall <allanr@sgi.com>
Thu, 28 Sep 2006 15:51:04 +0000 (15:51 +0000)
Merge of master-melb:xfs-cmds:27072a by kenmcd.

  Test to reproduce PV951636: project quotas not updated if a file is mv'd into that directory

134 [new file with mode: 0755]
134.out [new file with mode: 0644]
group

diff --git a/134 b/134
new file mode 100755 (executable)
index 0000000..47c1f62
--- /dev/null
+++ b/134
@@ -0,0 +1,96 @@
+#! /bin/sh
+# FS QA Test No. 134
+#
+# test to reproduce PV951636:
+#   project quotas not updated if a file is mv'd into that directory
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2006 Silicon Graphics, Inc.  All Rights Reserved.
+#-----------------------------------------------------------------------
+#
+# creator
+owner=allanr@sgi.com
+
+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
+. ./common.quota
+
+_cleanup()
+{
+       cd /
+       umount $SCRATCH_MNT 2>/dev/null
+       rm -f $tmp.*
+}
+#trap "_cleanup; exit \$status" 0 1 2 3 15
+
+
+# real QA test starts here
+_supported_fs xfs
+_supported_os Linux IRIX
+
+dir=$SCRATCH_MNT/project
+
+#project quota files
+cat >$tmp.projects <<EOF
+1:$dir
+EOF
+
+cat >$tmp.projid <<EOF
+test:1
+EOF
+
+cp /dev/null $seq.full
+chmod a+rwx $seq.full  # arbitrary users will write here
+
+_require_scratch
+_scratch_mkfs_xfs >/dev/null 2>&1
+
+if ! _scratch_mount "-o pquota" >$tmp.out 2>&1
+then
+    cat $tmp.out
+    echo "!!! mount failed"
+    exit
+fi
+
+src/feature -p $SCRATCH_DEV
+[ $? -ne 0 ] && _notrun "Installed kernel does not support project quotas"
+
+
+mkdir $dir
+$XFS_IO_PROG -r -c "chproj -R 1" -c "chattr -R +P" $dir
+
+xfs_quota -D $tmp.projects -P $tmp.projid -x \
+    -c "limit -p bsoft=100m bhard=100m 1" $SCRATCH_DEV
+xfs_quota -D $tmp.projects -P $tmp.projid -x -c "repquota -inN -p" $SCRATCH_DEV | tr -s '[:space:]'
+touch $dir/1
+touch $dir/2
+cp $dir/2 $dir/3
+
+xfs_quota -D $tmp.projects -P $tmp.projid -x -c "repquota -inN -p" $SCRATCH_DEV | tr -s '[:space:]'
+
+if [ "$HOSTOS" == "IRIX" ] ; then
+    mkfile 1M $TEST_DIR/6
+else
+    xfs_mkfile 1M $TEST_DIR/6
+fi
+
+#try cp to dir
+cp $TEST_DIR/6 $dir/6
+xfs_quota -D $tmp.projects -P $tmp.projid -x -c "repquota -inN -p" $SCRATCH_DEV | tr -s '[:space:]'
+
+#try mv to dir
+mv $TEST_DIR/6 $dir/7
+
+xfs_quota -D $tmp.projects -P $tmp.projid -x -c "repquota -inN -p" $SCRATCH_DEV | tr -s '[:space:]'
+
+# success, all done
+status=0
+exit
diff --git a/134.out b/134.out
new file mode 100644 (file)
index 0000000..689cf2f
--- /dev/null
+++ b/134.out
@@ -0,0 +1,5 @@
+QA output created by 134
+#1 1 0 0 00 [--------]
+#1 4 0 0 00 [--------]
+#1 5 0 0 00 [--------]
+#1 6 0 0 00 [--------]
diff --git a/group b/group
index 6347f8a9250eb0fa2af7e0e7904d44682660a715..2c20b31ada256d749638678eff15cbb964ef28d4 100644 (file)
--- a/group
+++ b/group
@@ -213,3 +213,4 @@ pattern         ajones@sgi.com
 131 perms auto
 132 pattern auto
 133 rw
+134 quota auto