All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] generic/273: Limit number of files by available inodes
@ 2022-11-30 17:01 Jan Kara
  2022-12-03  6:33 ` Zorro Lang
  0 siblings, 1 reply; 2+ messages in thread
From: Jan Kara @ 2022-11-30 17:01 UTC (permalink / raw)
  To: fstests; +Cc: Filipe Manana, Jan Kara

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

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


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v2] generic/273: Limit number of files by available inodes
  2022-11-30 17:01 [PATCH v2] generic/273: Limit number of files by available inodes Jan Kara
@ 2022-12-03  6:33 ` Zorro Lang
  0 siblings, 0 replies; 2+ messages in thread
From: Zorro Lang @ 2022-12-03  6:33 UTC (permalink / raw)
  To: Jan Kara; +Cc: fstests

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
> 


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-12-03  6:34 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-30 17:01 [PATCH v2] generic/273: Limit number of files by available inodes Jan Kara
2022-12-03  6:33 ` Zorro Lang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.