reflink: fix quota tests to work properly

Fix the reflink quota tests to su to the fsgqa user so that we actually
test enforcement of quotas.  Seems that XFS enforces user quotas even
if root is writing to a user file, whereas everything else lets root
writes through.  Also clean up some of the variable usage and
_require_user.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
This commit is contained in:
Darrick J. Wong
2017-01-09 12:53:35 -08:00
committed by Eryu Guan
parent 3547db8e84
commit eaa652fbb2
13 changed files with 153 additions and 153 deletions
+10 -12
View File
@@ -52,10 +52,8 @@ _require_fiemap
_require_quota
_require_nobody
_require_xfs_io_command "cowextsize"
_require_user
_repquota() {
repquota $SCRATCH_MNT | egrep '^(fsgqa|root|nobody)'
}
rm -f $seqres.full
echo "Format and mount"
@@ -78,27 +76,27 @@ _cp_reflink $testdir/file1 $testdir/file3 >> $seqres.full
touch $testdir/urk
chown nobody $testdir/urk
touch $testdir/erk
chown fsgqa $testdir/erk
_repquota
chown $qa_user $testdir/erk
_report_quota_blocks $SCRATCH_MNT
_scratch_cycle_mount
echo "Change file ownership"
chown fsgqa $testdir/file1
chown fsgqa $testdir/file2
chown fsgqa $testdir/file3
_repquota
chown $qa_user $testdir/file1
chown $qa_user $testdir/file2
chown $qa_user $testdir/file3
_report_quota_blocks $SCRATCH_MNT
echo "CoW one of the files"
$XFS_IO_PROG -f -c "pwrite -S 0x63 -b $blksz $((sz - blksz)) $blksz" -c "fsync" $testdir/file2 >> $seqres.full
_repquota
_report_quota_blocks $SCRATCH_MNT
echo "Remount the FS to see if accounting changes"
_scratch_cycle_mount
_repquota
_report_quota_blocks $SCRATCH_MNT
echo "Chown one of the files"
chown nobody $testdir/file3
_repquota
_report_quota_blocks $SCRATCH_MNT
# success, all done
status=0
+15 -15
View File
@@ -1,22 +1,22 @@
QA output created by 213
Format and mount
Create the original files
root -- 3072 0 0 7 0 0
nobody -- 0 0 0 1 0 0
fsgqa -- 0 0 0 1 0 0
root 3072 0 0
nobody 0 0 0
fsgqa 0 0 0
Change file ownership
root -- 0 0 0 4 0 0
nobody -- 0 0 0 1 0 0
fsgqa -- 3072 0 0 4 0 0
root 0 0 0
nobody 0 0 0
fsgqa 3072 0 0
CoW one of the files
root -- 0 0 0 4 0 0
nobody -- 0 0 0 1 0 0
fsgqa -- 3520 0 0 4 0 0
root 0 0 0
nobody 0 0 0
fsgqa 3520 0 0
Remount the FS to see if accounting changes
root -- 0 0 0 4 0 0
nobody -- 0 0 0 1 0 0
fsgqa -- 3072 0 0 4 0 0
root 0 0 0
nobody 0 0 0
fsgqa 3072 0 0
Chown one of the files
root -- 0 0 0 4 0 0
nobody -- 1024 0 0 2 0 0
fsgqa -- 2048 0 0 3 0 0
root 0 0 0
nobody 1024 0 0
fsgqa 2048 0 0
+10 -12
View File
@@ -53,10 +53,8 @@ _require_quota
_require_nobody
_require_xfs_io_command "cowextsize"
_require_odirect
_require_user
_repquota() {
repquota $SCRATCH_MNT | egrep '^(fsgqa|root|nobody)'
}
rm -f $seqres.full
echo "Format and mount"
@@ -79,27 +77,27 @@ _cp_reflink $testdir/file1 $testdir/file3 >> $seqres.full
touch $testdir/urk
chown nobody $testdir/urk
touch $testdir/erk
chown fsgqa $testdir/erk
_repquota
chown $qa_user $testdir/erk
_report_quota_blocks $SCRATCH_MNT
_scratch_cycle_mount
echo "Change file ownership"
chown fsgqa $testdir/file1
chown fsgqa $testdir/file2
chown fsgqa $testdir/file3
_repquota
chown $qa_user $testdir/file1
chown $qa_user $testdir/file2
chown $qa_user $testdir/file3
_report_quota_blocks $SCRATCH_MNT
echo "CoW one of the files"
$XFS_IO_PROG -d -f -c "pwrite -S 0x63 -b $blksz $((sz - blksz)) $blksz" -c "fsync" $testdir/file2 >> $seqres.full
_repquota
_report_quota_blocks $SCRATCH_MNT
echo "Remount the FS to see if accounting changes"
_scratch_cycle_mount
_repquota
_report_quota_blocks $SCRATCH_MNT
echo "Chown one of the files"
chown nobody $testdir/file3
_repquota
_report_quota_blocks $SCRATCH_MNT
# success, all done
status=0
+15 -15
View File
@@ -1,22 +1,22 @@
QA output created by 214
Format and mount
Create the original files
root -- 3072 0 0 7 0 0
nobody -- 0 0 0 1 0 0
fsgqa -- 0 0 0 1 0 0
root 3072 0 0
nobody 0 0 0
fsgqa 0 0 0
Change file ownership
root -- 0 0 0 4 0 0
nobody -- 0 0 0 1 0 0
fsgqa -- 3072 0 0 4 0 0
root 0 0 0
nobody 0 0 0
fsgqa 3072 0 0
CoW one of the files
root -- 0 0 0 4 0 0
nobody -- 0 0 0 1 0 0
fsgqa -- 3520 0 0 4 0 0
root 0 0 0
nobody 0 0 0
fsgqa 3520 0 0
Remount the FS to see if accounting changes
root -- 0 0 0 4 0 0
nobody -- 0 0 0 1 0 0
fsgqa -- 3072 0 0 4 0 0
root 0 0 0
nobody 0 0 0
fsgqa 3072 0 0
Chown one of the files
root -- 0 0 0 4 0 0
nobody -- 1024 0 0 2 0 0
fsgqa -- 2048 0 0 3 0 0
root 0 0 0
nobody 1024 0 0
fsgqa 2048 0 0