Message ID | 20221130170153.31924-1-jack@suse.cz (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] generic/273: Limit number of files by available inodes | expand |
On Wed, Nov 30, 2022 at 06:01:53PM +0100, Jan Kara 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@suse.cz> > --- Looks good to me, Reviewed-by: Zorro Lang <zlang@redhat.com> > tests/generic/273 | 16 ++++++++++++++-- > 1 file changed, 14 insertions(+), 2 deletions(-) > > Changes since v1: > * Handle btrfs which reports 0 free inodes > > diff --git a/tests/generic/273 b/tests/generic/273 > index f86dae9b8095..54c199962421 100755 > --- a/tests/generic/273 > +++ b/tests/generic/273 > @@ -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 > -- > 2.35.3 >
diff --git a/tests/generic/273 b/tests/generic/273 index f86dae9b8095..54c199962421 100755 --- a/tests/generic/273 +++ b/tests/generic/273 @@ -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
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> --- tests/generic/273 | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) Changes since v1: * Handle btrfs which reports 0 free inodes