Re: [PATCH 4/4] generic/775: Fix an infinite loop due to variable name clash

"Darrick J. Wong" <[email protected]>
Newsgroups org.kernel.vger.fstests
Message-ID <20260406153908.GM6212@frogsfrogsfrogs>
On Sun, Apr 05, 2026 at 07:37:08PM +0530, Ojaswin Mujoo wrote:
> On Wed, Apr 01, 2026 at 07:32:18AM -0700, Darrick J. Wong wrote:
> > On Wed, Apr 01, 2026 at 04:10:50PM +0530, Ojaswin Mujoo wrote:
> > > We use i as the iteration variable in the main test loop as well as some
> > > internal loops. Due to this clash, $i variable of main test loops was
> > > getting modified by the following loop in prep_mixed_mapping().
> > > 
> > > 	for ((i=0; i<num_blocks; i++)); do
> > > 
> > > If num_blocks is less than 10 (example ext4 with blocksize 4k and
> > > cluster size 8k) i would always be set as 3 and the main loop would
> > > never exit. Take the simplest approach of just renaming the variable.
> > > 
> > > Reported-by: Disha Goel <[email protected]>
> > > Signed-off-by: Ojaswin Mujoo <[email protected]>
> > > ---
> > >  tests/generic/775 | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/tests/generic/775 b/tests/generic/775
> > > index 2a4287bb..19ae95e2 100755
> > > --- a/tests/generic/775
> > > +++ b/tests/generic/775
> > > @@ -41,7 +41,7 @@ prep_mixed_mapping() {
> > >  
> > >  	local operations=("W" "H" "U")
> > >  	local num_blocks=$((awu_max / blksz))
> > > -	for ((i=0; i<num_blocks; i++)); do
> > > +	for ((j=0; j<num_blocks; j++)); do
> > 
> > You're right that the single-letter variables are a really bad idea in
> > languages like bash/python/etc where functions can see variables in
> > caller's scope if they're not explicitly marked local.
> > 
> > But a) why not use "local i" to prevent that; and (b) if you're going
> > to rename it, why not "blkno"?
> 
> Hey Darrick thanks for the review.
> 
> Why not both a) and b) :).
> I probably shouldve done that in the first place. I'll fix in v2

Yeah, that works! :)

Thanks for making those fixes.

--D

> Thanks,
> ojaswin
> 
> > 
> > --D
> > 
> > >  		local index=$((RANDOM % ${#operations[@]}))
> > >  		local map="${operations[$index]}"
> > >  		local mapping="${mapping}${map}"
> > > -- 
> > > 2.53.0
> > > 
> > > 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.