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 >