ext2: code cleanup for ext2_try_to_allocate()
authorChengguang Xu <cgxu519@mykernel.net>
Mon, 4 Nov 2019 11:40:35 +0000 (19:40 +0800)
committerJan Kara <jack@suse.cz>
Thu, 7 Nov 2019 11:35:27 +0000 (12:35 +0100)
Code cleanup by removing duplicated code.

Link: https://lore.kernel.org/r/20191104114036.9893-4-cgxu519@mykernel.net
Signed-off-by: Chengguang Xu <cgxu519@mykernel.net>
Signed-off-by: Jan Kara <jack@suse.cz>
fs/ext2/balloc.c

index f3ff05e..4beb416 100644 (file)
@@ -698,29 +698,20 @@ ext2_try_to_allocate(struct super_block *sb, int group,
                                ;
                }
        }
-       start = grp_goal;
 
-repeat:
-       if (ext2_set_bit_atomic(sb_bgl_lock(EXT2_SB(sb), group), grp_goal,
-                                                       bitmap_bh->b_data)) {
-               /*
-                * The block was allocated by another thread, or it was
-                * allocated and then freed by another thread
-                */
-               start++;
-               grp_goal++;
-               if (start >= end)
-                       goto fail_access;
-               goto repeat;
-       }
-       num++;
-       grp_goal++;
-       while (num < *count && grp_goal < end
-               && !ext2_set_bit_atomic(sb_bgl_lock(EXT2_SB(sb), group),
+       for (; num < *count && grp_goal < end; grp_goal++) {
+               if (ext2_set_bit_atomic(sb_bgl_lock(EXT2_SB(sb), group),
                                        grp_goal, bitmap_bh->b_data)) {
+                       if (num == 0)
+                               continue;
+                       break;
+               }
                num++;
-               grp_goal++;
        }
+
+       if (num == 0)
+               goto fail_access;
+
        *count = num;
        return grp_goal - num;
 fail_access: