]> git-server-git.apps.pok.os.sepia.ceph.com Git - xfstests-dev.git/commitdiff
generic/273: Limit number of files by available inodes
authorJan Kara <jack@suse.cz>
Wed, 30 Nov 2022 17:01:53 +0000 (18:01 +0100)
committerZorro Lang <zlang@kernel.org>
Sun, 11 Dec 2022 14:27:22 +0000 (22:27 +0800)
Test generic/273 is failing for ext4 with 1k blocksize because it is
creating more files than we have available inodes. Just limit the number
of files created to the number of inodes.

Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Zorro Lang <zlang@redhat.com>
Signed-off-by: Zorro Lang <zlang@kernel.org>
tests/generic/273

index f86dae9b809509f794b4d2e80794633a8f1391f8..54c1999624212723066a63200f4edb4c2b8365c7 100755 (executable)
@@ -50,9 +50,21 @@ _file_create()
 
        cd $SCRATCH_MNT/origin
 
-       _disksize=`$DF_PROG -B 1 $SCRATCH_MNT | tail -1 | $AWK_PROG '{ print $5 }'`
+       _disksize=$(_get_available_space $SCRATCH_MNT)
+       _free_inodes=$(_get_free_inode $SCRATCH_MNT)
+       # Some filesystems do not limit number of inodes and return 0
+       if [ $_free_inodes -eq 0 ]; then
+               # Guess one block per inode
+               _free_inodes=$(($_disksize / $block_size))
+       fi
+       # Leave some slack for directories etc.
+       _free_inodes=$(($_free_inodes - $_free_inodes/8))
        _disksize=$(($_disksize / 3))
-       _num=$(($_disksize / $count / $threads / $block_size))
+       _num=$(($_disksize / $count / $block_size))
+       if [ $_num -gt $_free_inodes ]; then
+               _num=$_free_inodes
+       fi
+       _num=$(($_num/$threads))
        _count=$count
        while [ $_i -lt $_num ]
        do