]> git-server-git.apps.pok.os.sepia.ceph.com Git - xfstests-dev.git/commitdiff
generic/775: Fix an infinite loop due to variable name clash
authorOjaswin Mujoo <ojaswin@linux.ibm.com>
Fri, 10 Apr 2026 06:36:05 +0000 (12:06 +0530)
committerZorro Lang <zlang@kernel.org>
Mon, 13 Apr 2026 17:42:41 +0000 (01:42 +0800)
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. Use local variable to fix this and while we are at it,
rename it for clarity.

Reported-by: Disha Goel <disgoel@linux.ibm.com>
Signed-off-by: Ojaswin Mujoo <ojaswin@linux.ibm.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Zorro Lang <zlang@kernel.org>
tests/generic/775

index 2a4287bbf997e5a1efaaaa118a67f8cd160d7bf8..6dc005a0aaa741b9fb086bef112657437db8f7b7 100755 (executable)
@@ -41,7 +41,8 @@ prep_mixed_mapping() {
 
        local operations=("W" "H" "U")
        local num_blocks=$((awu_max / blksz))
-       for ((i=0; i<num_blocks; i++)); do
+       local blkno
+       for ((blkno=0; blkno<num_blocks; blkno++)); do
                local index=$((RANDOM % ${#operations[@]}))
                local map="${operations[$index]}"
                local mapping="${mapping}${map}"