Re: [PATCH] generic/273: Limit number of files by available inodes

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



On Wed, Nov 30, 2022 at 4:30 PM Jan Kara <jack@xxxxxxx> wrote:
>
> 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@xxxxxxx>
> ---
>  tests/generic/273 | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/tests/generic/273 b/tests/generic/273
> index f86dae9b8095..80c02d43c7ac 100755
> --- a/tests/generic/273
> +++ b/tests/generic/273
> @@ -50,9 +50,16 @@ _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)

Jan, this will always return 0 on btrfs, since it has no limits on the
number of inodes, so it ends up not creating any files in the loop below.

We could call _require_inode_limits, but that would skip the test on btrfs.
Can we leave the old calculation if get_free_inode returns 0? (and
maybe leave a comment that a fs without inode limits returns 0)

Thanks.



> +       # 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
> --
> 2.35.3
>



[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux