generic/230: work with 64k block size
authorChandan Rajendra <chandan@linux.vnet.ibm.com>
Mon, 24 Sep 2018 15:19:38 +0000 (20:49 +0530)
committerEryu Guan <guaneryu@gmail.com>
Sun, 30 Sep 2018 05:57:50 +0000 (13:57 +0800)
This commit changes the test to work on file offsets that are aligned
with the block size of the underlying filesystem.

Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Tested-by: Zorro Lang <zlang@redhat.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
tests/generic/230
tests/generic/230.out

index bc8c1ad0200ce4cb27383dabc2fae2d52ac03ac9..66b12d2f9ab74df093487eac08d2ce3d5a5001e3 100755 (executable)
@@ -42,27 +42,27 @@ test_enforcement()
        echo "### some buffered IO (type=$type)"
        echo "--- initiating IO..." >>$seqres.full
        # Firstly fit below block soft limit
-       echo "Write 900k..."
-       su $qa_user -c "$XFS_IO_PROG -c 'pwrite 0 900k' -c fsync \
+       echo "Write 225 blocks..."
+       su $qa_user -c "$XFS_IO_PROG -c 'pwrite 0 $((225 * $BLOCK_SIZE))' -c fsync \
                $SCRATCH_MNT/file1" 2>&1 >>$seqres.full | \
                _filter_xfs_io_error | tee -a $seqres.full
        repquota -$type $SCRATCH_MNT  | grep -v "^root" >>$seqres.full 2>&1
        # Secondly overcome block soft limit
-       echo "Rewrite 1001k..."
-       su $qa_user -c "$XFS_IO_PROG -c 'pwrite 0 1001k' -c fsync \
+       echo "Rewrite 250 blocks plus 1 byte..."
+       su $qa_user -c "$XFS_IO_PROG -c 'pwrite 0 $((250 * $BLOCK_SIZE + 1))' -c fsync \
                $SCRATCH_MNT/file1" 2>&1 >>$seqres.full | \
                _filter_xfs_io_error | tee -a $seqres.full
        repquota -$type $SCRATCH_MNT  | grep -v "^root" >>$seqres.full 2>&1
        # Now try to overcome block hardlimit
-       echo "Write 1000k..."
-       su $qa_user -c "$XFS_IO_PROG -c 'pwrite 0 1000k' -c fsync \
+       echo "Write 250 blocks..."
+       su $qa_user -c "$XFS_IO_PROG -c 'pwrite 0 $((250 * $BLOCK_SIZE))' -c fsync \
                $SCRATCH_MNT/file2" 2>&1 >>$seqres.full | \
                _filter_xfs_io_error | tee -a $seqres.full
        repquota -$type $SCRATCH_MNT  | grep -v "^root" >>$seqres.full 2>&1
        # Now sleep for grace time and check that softlimit got enforced
        sleep $((grace+1))
-       echo "Write 4096..."
-       su $qa_user -c "$XFS_IO_PROG -c 'truncate 0' -c 'pwrite 0 4096' \
+       echo "Write 1 block..."
+       su $qa_user -c "$XFS_IO_PROG -c 'truncate 0' -c 'pwrite 0 $BLOCK_SIZE' \
                $SCRATCH_MNT/file2" 2>&1 >>$seqres.full | \
                _filter_xfs_io_error | tee -a $seqres.full
        repquota -$type $SCRATCH_MNT  | grep -v "^root" >>$seqres.full 2>&1
@@ -101,11 +101,14 @@ grace=2
 
 _scratch_mkfs >> $seqres.full 2>&1
 _scratch_mount "-o usrquota,grpquota"
+BLOCK_SIZE=$(_get_file_block_size $SCRATCH_MNT)
 quotacheck -u -g $SCRATCH_MNT 2>/dev/null
 quotaon $SCRATCH_MNT 2>/dev/null
-setquota -u $qa_user 1000 2000 3 5 $SCRATCH_MNT
+setquota -u $qa_user $((250 * $BLOCK_SIZE / 1024)) \
+        $((500 * $BLOCK_SIZE / 1024)) 3 5 $SCRATCH_MNT
 setquota -u -t $grace $grace $SCRATCH_MNT
-setquota -g $qa_user 1000 2000 3 5 $SCRATCH_MNT
+setquota -g $qa_user $((250 * $BLOCK_SIZE / 1024)) \
+        $((500 * $BLOCK_SIZE / 1024)) 3 5 $SCRATCH_MNT
 setquota -g -t $grace $grace $SCRATCH_MNT
 _scratch_unmount
 
index fcbacf285a6689cb117cbd4dcb699cb880a5623e..9e89a47d93bedc91b64e609e6d08c8768686c297 100644 (file)
@@ -4,11 +4,11 @@ QA output created by 230
 
 ### create files, setting up ownership (type=u)
 ### some buffered IO (type=u)
-Write 900k...
-Rewrite 1001k...
-Write 1000k...
+Write 225 blocks...
+Rewrite 250 blocks plus 1 byte...
+Write 250 blocks...
 pwrite: Disk quota exceeded
-Write 4096...
+Write 1 block...
 pwrite: Disk quota exceeded
 Touch 3+4
 Touch 5+6
@@ -20,11 +20,11 @@ touch: cannot touch 'SCRATCH_MNT/file5': Disk quota exceeded
 
 ### create files, setting up ownership (type=g)
 ### some buffered IO (type=g)
-Write 900k...
-Rewrite 1001k...
-Write 1000k...
+Write 225 blocks...
+Rewrite 250 blocks plus 1 byte...
+Write 250 blocks...
 pwrite: Disk quota exceeded
-Write 4096...
+Write 1 block...
 pwrite: Disk quota exceeded
 Touch 3+4
 Touch 5+6