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 > > > > > > >