Re: [PATCH 4/4] generic/775: Fix an infinite loop due to variable name clash
Ojaswin Mujoo <[email protected]>
| Newsgroups | org.kernel.vger.fstests |
|---|---|
| Message-ID | <[email protected]> |
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 Thanks, ojaswin > > --D > > > local index=$((RANDOM % ${#operations[@]})) > > local map="${operations[$index]}" > > local mapping="${mapping}${map}" > > -- > > 2.53.0 > > > >